Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie do dwóch tabel z warunkiem
gladiror
post 24.09.2014, 16:43:15
Post #1





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Mam dwie tabele:

Zlecenia:

id_zlecenia | tytul
1 | Zlecenie nr 1
2 | Zlecenie nr 2
3 | Zlecenie nr 3

i

Zlecenia_komentarze:

id_zlecenia | status_komentarza
1 | C
2 | K
3 | B

Potrzebuje wyciągnąć wszystkie informacje z tabeli Zlecenia, które posiadają status komentarza na "C'. Próbowałem następującym zapytaniem:

  1. SELECT zlecenia.id_zlecenia FROM zlecenia WHERE EXISTS (SELECT * FROM zlecenia_komentarze WHERE zlecenia_komentarze.status_komentarza='C')

ale niestety nie chce mi to w ten sposób działać. Mogę liczyć na jakaś podpowiedź? wink.gif


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
kartin
post 24.09.2014, 17:02:22
Post #2





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


  1. ... FROM zlecenia z JOIN Zlecenia_komentarze zk ON ...


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
Pyton_000
post 25.09.2014, 07:50:36
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Odwrotnie.
  1. SELECT z.* FROM zlecenia_komentarze zk JOIN zlecenia z ON(z.id = zk.zlecienia_id) WHERE zk.status_komentarza = 'C'
Go to the top of the page
+Quote Post
gladiror
post 25.09.2014, 16:03:13
Post #4





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 25.09.2014, 07:50:36 ) *
Odwrotnie.
  1. SELECT z.* FROM zlecenia_komentarze zk JOIN zlecenia z ON(z.id = zk.zlecienia_id) WHERE zk.status_komentarza = 'C'


Zmieniłem lekko, bo błędami sypało:

  1. SELECT z.* FROM zlecenia_komentarze zk JOIN zlecenia z ON(z.id_zlecenia = zk.id_zlecenia) WHERE zk.status_komentarza = 'C'


ale niestety dalej nie chce to działać :/


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
kartin
post 25.09.2014, 22:54:47
Post #5





Grupa: Zarejestrowani
Postów: 246
Pomógł: 79
Dołączył: 25.05.2010

Ostrzeżenie: (0%)
-----


Co konkretnie nie działa? Zapytanie jest dobre, co najwyżej trzeba zachować wielkość liter w nazwach tabel.


Cytat(Pyton_000 @ 25.09.2014, 08:50:36 ) *
Odwrotnie.
  1. SELECT z.* FROM zlecenia_komentarze zk JOIN zlecenia z ON(z.id = zk.zlecienia_id) WHERE zk.status_komentarza = 'C'

Kolejność tabel w JOIN nie ma w tym przypadku znaczenia.


--------------------
Jeśli ten post pomógł to kliknij przycisk po lewej stronie.
Nie pomagam przez PW, GG, e-mail, faks, telegram, znaki dymne, ...
Go to the top of the page
+Quote Post
gladiror
post 26.09.2014, 13:05:08
Post #6





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Zwraca mi pusty wynik to zapytanie. Komórki dwie mają na pewno status_komentarza='C'...


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post
phpion
post 26.09.2014, 14:04:54
Post #7





Grupa: Moderatorzy
Postów: 6 070
Pomógł: 860
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Czy na pewno istnieją zlecenia do tych komentarzy? Oraz czy tabela zleceń ma kolumnę id czy id_zlecenia? Bo w pierwszym poście napisałeś inaczej niż jest w zapytaniu.
Go to the top of the page
+Quote Post
gladiror
post 26.09.2014, 16:49:47
Post #8





Grupa: Zarejestrowani
Postów: 398
Pomógł: 0
Dołączył: 13.07.2005
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Cytat(phpion @ 26.09.2014, 13:04:54 ) *
Czy na pewno istnieją zlecenia do tych komentarzy? Oraz czy tabela zleceń ma kolumnę id czy id_zlecenia? Bo w pierwszym poście napisałeś inaczej niż jest w zapytaniu.


Faktycznie brakowało uzupełnienia w bazie zlecenia smile.gif Dzięki za pomoc

Jeszcze takie jedno pytanko, bo w tym momencie pokazuje mi wszystkie, które mają status_komentarza='C', a jak doszlifować to, żeby pokazywało wsztystkie, które nie posiadają 'C' w tym polu? Próbowałem

  1. SELECT z.* FROM zlecenia_komentarze zk JOIN zlecenia z ON(z.id = zk.zlecenia_id) WHERE zk.status_komentarza <> 'C'


ale wtedy gdy tabela zlecenia_komentarze nie posiada żadnego rekordu z id_zlecenia to żaden rekord nie wyświetla się.

Chodzi o to, żeby wyświetliło mi wszystkie rekordy z tablica zlecenia, które nie posiadają rekordu w tablicy status_komentarza lub posiadają taki rekord, gdzie status_komentarza <> 'C'.


--------------------
"Państwo to ja" Ludwik XIV
"Wróg zaatakuje to co kochasz" Ojciec Chrzestny
"Wszystko powinno być proste jak to tylko możliwe, ale nie prostsze..." A. Einstein
"Wyobraźnia jest ważniejsza niż wiedza" Albert Einstein
"Nieprawda powtarzana wielokrotnie staje się prawdą"
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 10.06.2024 - 23:58