Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: left join - wyniki z NULL
Forum PHP.pl > Forum > Bazy danych > MySQL
Jozjasz
Witam Drogich Forumowiczów

Moje zapytanie wygląda następująco:

  1. SELECT first_name, last_name, patient_id FROM patient LEFT JOIN result ON patient.id=result.patient_id;


result - to tabela z wynikami badań

Zapytanie działa fajnie. Tam gdzie nie ma powiązań, czyli pacjenci nie mają badań, zwraca NULL, tam gdzie są zwraca wartość z "patiend_id"

Tylko jak teraz zmienić zapytanie, żeby zwracało TYLKO te rekordy z NULL. Czyli tylko te dla których nie ma powiązania?

Dzięki
irmidjusz
dodajesz prosty warunek
WHERE ... IS NULL
gdzie ... to kolumna z prawej tabeli, której wartość to NULL bo nie ma wiersza
Jozjasz
też tak myślałem... żeby dodać właśnie: and patient_id not null;

całe zapytanie wygląda tak:

  1. SELECT first_name, last_name, patient_id FROM patient LEFT JOIN result ON patient.id=result.patient_id AND patient_id IS NULL;


Ale zwraca mi zaskakujące wyniki... zwraca wszystkich użytkowników, i wszystkim przypisuje NULL w kolumnie 'patient_id'.


PS
Baza wygląda tak:
patient: id, first_name, last_name
result: id, opis, patient_id(klucz obcy)
mmmmmmm
  1. SELECT first_name, last_name, patient_id FROM patient LEFT JOIN result ON patient.id=result.patient_id WHERE patient_id IS NULL;
thek
A o WHERE aby nie zapomniałeś po kolumnach w ON ? wink.gif
Jozjasz
No tak, ale dziwne, że po ON musiałem dać where. Z kolei w zapytaniu niżej, gdzie łączę tabelę z samą sobą, to po ON dałęm AND. W przypadku dania WHERE zamiast AND wywala błąd.

Działa to zapytanie:


  1. SELECT p1.name, p1.species, p1.sex, p2.name, p2.species, p2.sex FROM pet AS p1 INNER JOIN pet AS p2 ON p1.species=p2.species AND p1.sex!=p2.sex AND p1.sex='m';
maly_swd
A nie takie cos?

  1. SELECT first_name, last_name, patient_id FROM patient LEFT JOIN result ON patient.id=result.patient_id HAVING result.patient_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.