Właściwie nie poleciłbym do tego JOIN — a raczej poleciłbym „semijoin ", która jest koncepcją algebry relacyjnej, która nie jest bezpośrednio wyrażona w SQL. Sprzężenie częściowe to zasadniczo sprzężenie, w którym chcesz pobrać rekordy tylko z jednej tabeli, ale pod warunkiem, że odpowiadają one rekordom w innej tabeli.
W notacji SQL ta koncepcja jest wyrażana pośrednio, za pomocą IN
klauzula
, z podzapytanie
:
SELECT key, value
FROM comments
WHERE key IN
( SELECT comment_key
FROM meta
WHERE value = 1
)
;
(MySQL w rzeczywistości przetłumaczy to z powrotem na wewnętrzne sprzężenie częściowe — zasadniczo rodzaj zdegenerowanego sprzężenia wewnętrznego — ale IN
klauzula jest naturalnym sposobem wyrażenia go w surowym SQL.)