table1 (id, name)
table2 (id, name)
Pertanyaan:
SELECT name
FROM table2
-- that are not in table1 already
sumber
table1 (id, name)
table2 (id, name)
Pertanyaan:
SELECT name
FROM table2
-- that are not in table1 already
SELECT t1.name
FROM table1 t1
LEFT JOIN table2 t2 ON t2.name = t1.name
WHERE t2.name IS NULL
T : Apa yang terjadi di sini?
A : Secara konseptual, kami memilih semua baris dari table1
dan untuk setiap baris kami berusaha menemukan baris table2
dengan nilai yang sama untuk name
kolom. Jika tidak ada baris seperti itu, kami hanya membiarkan table2
bagian dari hasil kami kosong untuk baris itu. Kemudian kami membatasi pilihan kami dengan memilih hanya baris-baris di hasil di mana baris yang cocok tidak ada. Akhirnya, Kami mengabaikan semua bidang dari hasil kami kecuali untuk name
kolom (yang kami yakin ada, dari table1
).
Meskipun ini mungkin bukan metode yang paling mungkin dilakukan dalam semua kasus, itu harus bekerja pada dasarnya setiap mesin basis data yang pernah mencoba untuk mengimplementasikan ANSI 92 SQL
Anda bisa melakukannya
atau
Lihat pertanyaan ini untuk 3 teknik untuk mencapai ini
sumber
Saya tidak punya cukup poin rep untuk memilih jawaban ke-2. Tetapi saya harus tidak setuju dengan komentar di atas. Jawaban kedua:
Apakah JAUH lebih efisien dalam praktik. Saya tidak tahu mengapa, tapi saya menjalankannya melawan 800k + catatan dan perbedaannya luar biasa dengan keuntungan yang diberikan pada jawaban ke-2 yang diposting di atas. Hanya $ 0,02 saya
sumber
Ini adalah teori himpunan murni yang dapat Anda capai dengan
minus
operasi.sumber
https://www.cloudways.com/blog/how-to-join-two-tables-mysql/
sumber
Hati-hati terhadap jebakan. Jika bidang
Name
di dalamTable1
berisi Nulls Anda berada dalam kejutan. Lebih baik adalah:sumber
Inilah yang paling cocok untuk saya.
Ini lebih dari dua kali lebih cepat daripada metode lain yang saya coba.
sumber
Anda dapat menggunakan
EXCEPT
mssql atauMINUS
oracle, mereka identik menurut:http://blog.sqlauthority.com/2008/08/07/sql-server-except-clause-in-sql-server-is-similar-to-minus-clause-in-oracle/
sumber
Itu berhasil bagi saya
sumber
Lihat kueri:
Secara konseptual akan menjadi: Mengambil catatan yang cocok di subquery dan kemudian di query utama mengambil catatan yang tidak ada di subquery.
sumber
Saya akan memposting ulang (karena saya belum cukup keren untuk berkomentar) dalam jawaban yang benar .... kalau-kalau ada orang yang berpikir perlu menjelaskan lebih baik.
Dan saya telah melihat sintaks dalam FROM yang membutuhkan koma di antara nama tabel di mySQL tetapi dalam sqlLite sepertinya lebih menyukai spasi.
Intinya adalah ketika Anda menggunakan nama-nama variabel buruk itu meninggalkan pertanyaan. Variabel saya harus lebih masuk akal. Dan seseorang harus menjelaskan mengapa kita membutuhkan koma atau tidak koma.
sumber
Jika Anda ingin memilih pengguna tertentu
Ini
tent_npk
adalah kunci utama penggunasumber