LEFT OUTER JOIN是允许您进行的JOIN操作之一 指定一个join子句。它保留了第一个不匹配的行 (左)表,用第二个形状的NULL行连接它们 (右)表。
为什么最后两个查询的结果为空?
SELECT *
FROM PTB_YSQK;
-- 10 rows
SELECT *
FROM PTB_FP;
-- 10 rows
SELECT *
FROM PTB_YSQK
LEFT JOIN PTB_FP ON PTB_FP.YSID = PTB_YSQK.ID;
-- 10 rows
SELECT *
FROM PTB_YSQK
LEFT JOIN PTB_FP ON PTB_FP.ID IS NULL;
-- 0 rows
SELECT *
FROM PTB_YSQK
LEFT JOIN PTB_FP ON PTB_FP.ID = (
SELECT min(PTB_FP.ID)
FROM PTB_FP
WHERE PTB_FP.YSID = PTB_YSQK.ID
)
-- 0 rows
有关这些表格的详细信息,请参阅https://gist.github.com/toaco/f3821f69ad86889abb43878ac2b4978d