Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Różnica danych
kask18
post
Post #1





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 3.12.2008

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


Witam , mam 2 tabele X i Y:

X
-----------------------
id | atrybut1 | atrybut2
1 | 1 | 5
2 | 3 | 6
3 | 4 | 7

Y
----------------------
id | klucz | atrybut2
1 | 1 | 1
2 | 2 | 2

Problem jest taki:
Chce wyświetlić tylko te rekordy z tablicy X których klucz główny nie występuje w Y.klucz
oraz spełniony jest warunek Y.atrybut2 != 1.
Zapytanie:
  1. SELECT x.* FROM x LEFT JOIN y
  2. ON x.id = y.klucz
  3. WHERE y.atrybut2 !=1


Działa błędnie ponieważ jeśli tablica y jest pusta to LEFT JOIN wstawia w miejsce y.klucz wartosc NULL i zapytanie zwraca pusty wynik. a powinno wszystkie rekordy z tablicy X.

Z góry dzięki za odpowiedzi
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
phpion
post
Post #2





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




  1. SELECT * FROM x WHERE id NOT IN (SELECT klucz FROM y);
Go to the top of the page
+Quote Post
kask18
post
Post #3





Grupa: Zarejestrowani
Postów: 121
Pomógł: 0
Dołączył: 3.12.2008

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


Dzięki wielkie za pomoc guitar.gif guitar.gif guitar.gif

Ten post edytował kask18 18.10.2009, 15:11:41
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: 19.08.2025 - 19:53