Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL]Wybieranie pustych rekordow
Forum PHP.pl > Forum > Przedszkole
-lol99-
Witam,
Napisałem zapytanie pobierające wszystkie rekordy z tabeli a, które nie maja elementu w tabeli b.
Wszystko działa do kiedy wszystkie elementy z tab a nie maja odpowiednika w tabeli b, wtedy zostają zwrócone wszystkie elementy a nie puste zapytanie.
  1. SELECT locations.id
  2. , locations.name
  3. FROM
  4. locations
  5. INNER JOIN game_locations
  6. ON locations.id <> game_locations.location_id AND game_locations.game_id = 36
Sephirus
Oj coś źle kombinujesz, po to jest LEFT JOIN - aż się prosi o użycie smile.gif

Rekordy z locations, które nie mają odpowiedników w game_locations:

  1. SELECT locations.id
  2. , locations.name
  3. FROM
  4. locations
  5. LEFT JOIN game_locations
  6. ON locations.id = game_locations.location_id AND game_locations.game_id = 36
  7. WHERE game_locations.location_id IS NULL


dodatkowo naucz się używać aliasów - jest bardziej przejrzyście:

  1. SELECT a.id
  2. , a.name
  3. FROM
  4. locations AS a
  5. LEFT JOIN game_locations AS b
  6. ON a.id = b.location_id AND b.game_id = 36
  7. WHERE b.location_id 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.