[MySQL] Zwrot tego, co pasuje i nie pasuje :-/
ďťż
[MySQL] Zwrot tego, co pasuje i nie pasuje :-/ Zobacz wiadomości
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
=?ISO-8859-2?Q?Pawe=B3_Jurewicz?= - 13-02-2006 10:32 [MySQL] Zwrot tego, co pasuje i nie pasuje :-/
Mam dwie tabele w relacji "wiele do wielu". Pierwsza zawiera dzialy druga zawiera produkty (kazdy produkt moze nalezec do kilku dzialow, a kazdy dzial moze miec wiele produktow)
I teraz mecze sie jak zadac jedno zapytanie tak, zeby uzyskac wszystkie dzialy z oznaczonym faktem czy dany produkt nalezy czy nie nalezy. Probuje z IF, ale wychodza mi kosmiczne wyniki:
SELECT DISTINCT dzialy.id_dzial, dzialy.nazwa, IF( produkt_dzial.id_prod = 6, 'tak', 'nie' ) FROM dzialy, produkt_dzial WHERE produkt_dzial.id_dzial = dzialy.id_dzial
Paweł Jurewicz wrote: > Mam dwie tabele w relacji "wiele do wielu". Pierwsza zawiera dzialy druga > zawiera produkty (kazdy produkt moze nalezec do kilku dzialow, a kazdy dzial > moze miec wiele produktow) > > I teraz mecze sie jak zadac jedno zapytanie tak, zeby uzyskac wszystkie dzialy > z oznaczonym faktem czy dany produkt nalezy czy nie nalezy. Probuje z IF, ale > wychodza mi kosmiczne wyniki: > > SELECT DISTINCT dzialy.id_dzial, dzialy.nazwa, IF( produkt_dzial.id_prod = 6, > 'tak', 'nie' ) > FROM dzialy, produkt_dzial > WHERE produkt_dzial.id_dzial = dzialy.id_dzial > > Ktos ma pomysl jak to zrobic jednym zapytaniem?
Użyj LEFT JOIN, oba warunki wrzyć do klauzuli ON, a w IF'ie sprawdzaj tylko czy id_prod jest null czy nie jest.
Decede mihi sole - nie zasłaniaj mi słonca. Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści Hoc fac - tak czyń. A tergo - od tyłu; z tyłu. I czarne włosy posiwieją. Safona