Vlastně bych na to nedoporučoval JOIN – nebo spíše bych doporučil „semijoin ", což je koncept relační algebry, který není přímo vyjádřen v SQL. Semijoin je v podstatě spojení, kde chcete načíst záznamy pouze z jedné tabulky, ale s podmínkou, že mají odpovídající záznamy v jiné tabulce.
V zápisu SQL je tento koncept vyjádřen nepřímo pomocí IN
doložka
, s poddotaz
:
SELECT key, value
FROM comments
WHERE key IN
( SELECT comment_key
FROM meta
WHERE value = 1
)
;
(MySQL to nakonec interně přeloží zpět na semijoin – v podstatě jakési degenerované vnitřní spojení – ale IN
klauzule je přirozený způsob, jak ji vyjádřit v surovém SQL.)