Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [mysql] Jak wybrać różnice rekordów z dwóch tabel?
yalus
post 7.01.2010, 15:57:30
Post #1





Grupa: Zarejestrowani
Postów: 281
Pomógł: 0
Dołączył: 8.07.2005
Skąd: EU

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


Witam,

Jak można łatwo i skutecznie wybrać róznice rekordów z dwóch tabel, tzn mam dwie tabele np A i B. Tabel A zawiera np. 1000 rekordów, każdy o unikalnym id. Tabela B zawiera 1500 rekordów z czego 1000 to są te same rekordy które znajdują sie w tabeli A i teraz chciałbym wybrać z tabeli B tylko te rekordy które nie znajdują się w tabeli B czyli tylko te 500?

jezeli mialbym wybrac te same rekordy to bylo by tak
  1. SELECT * FROM A,B WHERE A.id=B.id
a jak by to wyglądało z wybraniem różnicy?

męcze sie jak koń pod góre i nie za bardzo mi wychodzi, czy mogłby mnie ktoś naprowadzić na właściwy trop?

pozdrawiam i z góry b.dziękuję za pomoc


--------------------
człowiek nie sznurek wszystko wytrzyma
Go to the top of the page
+Quote Post
Mephistofeles
post 7.01.2010, 16:22:07
Post #2





Grupa: Zarejestrowani
Postów: 1 182
Pomógł: 115
Dołączył: 4.03.2009
Skąd: Myszków

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


Spróbuj
  1. SELECT * FROM b WHERE id NOT IN (SELECT id FROM a)
Go to the top of the page
+Quote Post
Mchl
post 7.01.2010, 16:46:39
Post #3





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Cytat(Mephistofeles @ 7.01.2010, 16:22:07 ) *
Spróbuj
[SQL] pobierz, plaintext
  1. SELECT * FROM b WHERE id NOT IN (SELECT id FROM a)
[SQL] pobierz, plaintext


Zadziała, ale powoli, bo podzapytanie będzie wykonywane dla każdego wiersza w tabeli b.

Lepeij tak

Kod
SELECT * FROM b LEFT JOIN a USING(id) WHERE a.id IS NULL
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 Wersja Lo-Fi Aktualny czas: 23.06.2025 - 15:12