Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z zapytaniem
Forum PHP.pl > Forum > Bazy danych > MySQL
patrykt
Problem, z którym stykam się nie od dziś. Muszę wybrać z bazy danych, w możliwie JEDNYM zapytanie, powiedzmy 20 rekordów z jednej tabeli. Jeśli w drugiej tabeli występuje rekord, posiadający w określonej kolumnie id z pierwszej tabeli, to taki rekord NIE jest wybierany. Mam nadzieję, iż wyraziłem się jasno. Mogę postarać się opisać to dokładnie.
tmk
Najlepiej podaj przykład - zarówno tabel z bazy jak i zapytania, z którego korzystasz.
Chodzi Ci o wyświetlenie rekorów z tabelki A, których nie ma w tabelce B?
patrykt
>Chodzi Ci o wyświetlenie rekorów z tabelki A, których nie ma w tabelce B?

dokładnie
tmk
1-wsze rozwiązanie - nie jestem pewien, czy w MySQLu jest to obsługiwane:
  1. SELECT*
  2. FROM A_table;
  3. MINUS
  4. SELECT*
  5. FROM B_table;

obydwa zapytania muszą odwoływać się do tej samej liczby kolumn, odpowiadające sobie kolumny muszą być tego samego typu

2-gie rozwiązanie: jeśli MINUS nie jest obsługiwane to można skorzystac z NOT IN. Nie wiem jakiego masz MySQLa i czy obsługiwane są w nim podzapytania:
  1. SELECT*
  2. FROM A_table
  3. WHERE id NOT IN (SELECT id
  4. FROM B_table)
patrykt
psiakrew, tego to ja nie znałem. wielkie dzięki, mam się czym bawić.
pzdrwm
spenalzo
  1. SELECT tabela1.*
  2. FROM tabela1
  3. LEFT JOIN tabela2 ON (tabela1.id=tabela2.id) WHERE tabela2.costam IS NULL
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.