Bagaimana cara memilih semua baris dalam satu tabel yang tidak muncul di tabel lain?
Tabel 1:
+-----------+----------+------------+
| FirstName | LastName | BirthDate |
+-----------+----------+------------+
| Tia | Carrera | 1975-09-18 |
| Nikki | Taylor | 1972-03-04 |
| Yamila | Diaz | 1972-03-04 |
+-----------+----------+------------+
Meja 2:
+-----------+----------+------------+
| FirstName | LastName | BirthDate |
+-----------+----------+------------+
| Tia | Carrera | 1975-09-18 |
| Nikki | Taylor | 1972-03-04 |
+-----------+----------+------------+
Contoh keluaran untuk baris di Tabel1 yang tidak ada di Tabel2:
+-----------+----------+------------+
| FirstName | LastName | BirthDate |
+-----------+----------+------------+
| Yamila | Diaz | 1972-03-04 |
+-----------+----------+------------+
Mungkin sesuatu seperti ini seharusnya berhasil:
SELECT * FROM Table1 WHERE * NOT IN (SELECT * FROM Table2)
mysql
sorting
unique
database-table
Christopher Rapcewicz
sumber
sumber
Anda perlu melakukan subpilih berdasarkan nama kolom, bukan
*
.Misalnya, jika Anda memiliki
id
bidang yang sama untuk kedua tabel, Anda dapat melakukan:Lihat sintaks subkueri MySQL untuk contoh lainnya.
sumber
EXISTS
akan membantumu...sumber
Standar LEFT JOIN dapat menyelesaikan masalah dan, jika field pada join diindeks,
juga harus lebih cepat
sumber
WHERE t2.Birthdate Is Null
malahAND t1.Birthdate = t2.Birthdate
?Table2
!Mencoba:
sumber
Coba kueri sederhana ini. Ini bekerja dengan sempurna.
sumber
Ini berhasil untuk saya di Oracle:
sumber
sumber