Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> zapytanie łączące 2 tabele
cinnek
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.12.2003

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


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
Go to the top of the page
+Quote Post
Vertical
post
Post #2





Grupa: Zarejestrowani
Postów: 848
Pomógł: 0
Dołączył: 7.07.2004
Skąd: Wrocław

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


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. ?>


Ten post edytował Vertical 29.12.2004, 20:58:38
Go to the top of the page
+Quote Post
cinnek
post
Post #3





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 3.12.2003

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


a nie można jakoś jednym zapytaniem żeby wyswietlało te rekordy których nie ma w drugiej tabeli??
Go to the top of the page
+Quote Post
gdaq
post
Post #4





Grupa: Zarejestrowani
Postów: 62
Pomógł: 0
Dołączył: 25.12.2003
Skąd: Warszawa

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


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
Go to the top of the page
+Quote Post
popbart
post
Post #5





Grupa: Zarejestrowani
Postów: 255
Pomógł: 0
Dołączył: 22.04.2004
Skąd: Żoliborz

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


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


Ten post edytował popbart 30.12.2004, 11:01:04


--------------------
Visual Basic - kto by pomyślał :)
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 20.08.2025 - 12:35