Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyciągnięcie danych z trzech tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
kurt
mam trzy tabele:
A: zawiera kolumnę cat_id, wypełnioną wartościami 1,2,3,4,5...
B (słownikowa): zawiera kolumny: it_typu oraz prod_id
C: (słownikowa): zawiera kolumny:cat_id oraz prod_id

Chcę wyłuskać z tabeli A wszystkie wartości cat_id , które nie są reprezentowane w tabeli C.
Dla utrudnienia wyszukanie musi spełniać warunek dla konkretnej wartości id_typu z tabeli B.

Próbowałem już kilku zapytań z zastosowaniem LEFT JOIN, ale niestety zabrnąłem w ślepą uliczkę i nie przychodzi mi nic sensownego do głowy.
arecki
Chyba tak ale nie gwarantuje smile.gif
  1. SELECT A.cat_id FROM tabelaA A WHERE cat_id NOT IN (
  2. SELECT C.cat_id FROM tabelaB B LEFT JOIN tabelaC C ON B.prod_id = C.prod_id WHERE B.prod_id = 'wybrana wartosc'
  3. )
kurt
Jak ktoś kiedyś będzie mnie pytał, to podam Twoją kandydaturę do Nobla smile.gif
lekkie poprawki i zadziałało :

  1. SELECT A.cat_id FROM tabelaA A WHERE cat_id NOT IN ( SELECT C.cat_id FROM tabelaC C LEFT JOIN tabelaB B ON B.prod_id = C.prod_id WHERE B.id_typu = 'wybrana wartosc')
arecki
Oj ale mi się lapsus językowy wymsknął. Faktycznie teraz powinno być lepiej. Cieszy mnie to że mogłem pomóc. A z tym noblem to nie taki głupi pomysł... 1000000 $ drogą nie chodzi smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.