Saya sebenarnya tidak akan merekomendasikan GABUNG untuk ini — atau lebih tepatnya, saya akan merekomendasikan "semijoin ", yang merupakan konsep aljabar relasional yang tidak diekspresikan secara langsung dalam SQL. Semijoin pada dasarnya adalah gabungan di mana Anda ingin mengambil record hanya dari satu tabel, tetapi dengan ketentuan bahwa record tersebut memiliki record yang sesuai di tabel yang berbeda.
Dalam notasi SQL, konsep ini dinyatakan secara tidak langsung, dengan menggunakan sebuah IN
klausa
, dengan subqueries
:
SELECT key, value
FROM comments
WHERE key IN
( SELECT comment_key
FROM meta
WHERE value = 1
)
;
(MySQL sebenarnya akan menerjemahkannya kembali menjadi semijoin secara internal — pada dasarnya semacam gabungan dalam yang merosot — tetapi IN
klausa adalah cara alami untuk mengekspresikannya dalam SQL mentah.)