Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL]Wybieranie pustych rekordow
--lol99--
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Oj coś źle kombinujesz, po to jest LEFT JOIN - aż się prosi o użycie (IMG:style_emoticons/default/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
Go to the top of the page
+Quote Post

Posty w temacie
- -lol99-   [MySQL]Wybieranie pustych rekordow   26.02.2013, 22:54:29
- - Sephirus   Oj coś źle kombinujesz, po to jest LEFT JOIN - aż ...   27.02.2013, 08:57:15


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 14.10.2025 - 03:56