Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [mysql] Jak wybrać różnice rekordów z dwóch tabel?
Forum PHP.pl > Forum > Bazy danych > MySQL
yalus
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
Mephistofeles
Spróbuj
  1. SELECT * FROM b WHERE id NOT IN (SELECT id FROM a)
Mchl
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
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.