Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Wykluczanie części wyniku zapytania
Forum PHP.pl > Forum > Bazy danych > MySQL
shalwia
Mamy następującą sytuację:
Dwie tabele o nazwach: TABELA1 oraz TABELA2 oraz TABELA3 W każdej z tabel mamy następujące kolumny: ID, PRZEDMIOT. W TABELA1 są następujące rekordy: 1, Podstawy programowania. W Tabela2: 1, Programowanie w C. W TABELA3: 1, Podstawy programowania, oraz 2, Programowanie w C oraz 3, Sieci komputerowe. Jak sformułować zapytanie do bazy, które pobierze wszystkie rekordy z TABELA3, lecz bez rekordów, które znajdują się w TABELA1 oraz TABELA2. W przypadku, który przestawiłem powyżej zapytanie powinno zwrócić jedynie rekodry: 3, Sieci komputerowe. Da się wogóle sformułować takie zapytanie? Jeżeli nie, to jak rozwiązać to php'em?
UDAT
Użyj podzapytań, coś a'la:
  1. SELECT name FROM tabela3 WHERE name NOT IN ( SELECT name FROM tabela1 ) AND name NOT IN ( SELECT name FROM tabela2 )
wijet
albo
  1. SELECT t3.* FROM t3,t2,t1 WHERE t3.name != t2.name AND t3.name != t1.name;

Powinieneś przemyśleć budowę bazy, trzymanie trzech identycznych tablel jest bez sensu.
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.