內連接(INNER JOIN)僅回傳雙方匹配的列。若需保留單方所有列(即使另一方無匹配),需使用外連接。
IS NULL / IS NOT NULL,不可用 =、<>。範例:查無領導政黨 SELECT code, name FROM party WHERE leader IS NULL;查被開除黨籍議員 SELECT name FROM msp WHERE party IS NULL。
| 連接類型 | 語法 | 結果包含 |
|---|---|---|
| 左連接 | LEFT JOIN | 左表所有列 + 右表匹配列(無匹配則 NULL) |
| 右連接 | RIGHT JOIN | 右表所有列 + 左表匹配列 |
| 全連接 | FULL JOIN | 左右表所有列(雙向保留) |
party(Code, Name, Leader)msp(Name, Party, Constituency) — Party 為政黨代碼,可為 NULLSELECT msp.name, party.name
FROM msp JOIN party ON msp.party = party.code;
結果缺少 Canavan MSP, Dennis(party IS NULL),因無匹配被過濾。
SELECT msp.name, party.name
FROM msp LEFT JOIN party ON msp.party = party.code;
無黨籍議員 party.name 顯示 NULL,其餘正常顯示政黨名。
SELECT msp.name, party.name
FROM msp RIGHT JOIN party ON msp.party = party.code;
無議員政黨 msp.name 顯示 NULL,無黨籍議員被排除。
SELECT msp.name, party.name
FROM msp FULL JOIN party ON msp.party = party.code;
同時保留無黨籍議員與無議員政黨,完整呈現雙方實況。