Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zapytanie łączące 2 tabele
Forum PHP.pl > Forum > Bazy danych > MySQL
cinnek
Witam

Mam 2 tabele połaczone jakimś ID i chodzi mi o to aby wyświetlić wszystkie rekordy z pierwszej tabeli takie których ID nie znajduje się w drugiej tabeli czyli np

tabela jeden:
ID | imie
1 | marcin
2 | jola
3 | kacper



tabela dwa:
ID | jakiespole
1 | akfsfass
3 | ioiweow

i chcę żeby mi wyświetliło:

ID | imie
2 | jola

Ale bardzo ważne jest dla mnie to że gdy tabela dwa jest pusta to ma mi wyswietlić wszystko z tabeli jeden i własnie tego nie potrafię uzyskać.


Ja robię to tak

Select jeden.ID,jeden.imie from jeden , dwa where jeden.ID!=dwa.ID;

Problem polega na tym że to nie działa gdy tabela dwa jest pusta, a wtedy chciałbym zeby wyswietliło wszystko z tabeli jeden.


Z góry dzięki za pomoc
Vertical
Cytat
Ale bardzo ważne jest dla mnie to że gdy tabela dwa jest pusta to ma mi wyswietlić wszystko z tabeli jeden i własnie tego nie potrafię uzyskać

  1. <?php
  2. $result = mysql_query(&#092;"SELECT * FROM tabela2 WHERE ID = '1'\");
  3. $row = mysql_fetch_array($result);
  4. if($row['id'] == &#092;"\")
  5. {
  6. $result = mysql_query(&#092;"SELECT * FROM tabela1\");
  7. }
  8. ?>
cinnek
a nie można jakoś jednym zapytaniem żeby wyswietlało te rekordy których nie ma w drugiej tabeli??
gdaq
Jednym zapytaniem mozna uzywajac operatora MINUS ale nie obsluguje go jeszcze narazie MySQL wiec zostaje napiasnie proecdury ale to chyba nie ma sensu. Przedstawione powyzej rozwiazanie jest najrozsadniejsze i proste.
Z warunku where chyba nie da sie uzyskac czegos takiego bo iloczyn kartezjanski dwoch tablic prz czym jeden psutej zawsze zwroci pusta wartosc.
Pozostaje jeszcze podzapytanie ale rowniez nie obsluguje tego mysql.

Gdaq
popbart
To nie takie trudne tongue.gif
  1. SELECT jeden.id,jeden.imie
  2. FROM jeden LEFT JOIN dwa ON (jeden.id=dwa.id_jeden)
  3. WHERE dwa.id_jeden 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.