Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Zapytanie do dwóch tabel z warunkiem
gladiror
post
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ź? (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post
kartin
post
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 ...
Go to the top of the page
+Quote Post
Pyton_000
post
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
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ć :/
Go to the top of the page
+Quote Post
kartin
post
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.
Go to the top of the page
+Quote Post
gladiror
post
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'...
Go to the top of the page
+Quote Post
phpion
post
Post #7





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
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
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 (IMG:style_emoticons/default/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'.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.12.2025 - 23:39