Oracle9i - 为什么这个左连接返回空结果?

时间:2017-12-14 10:20:32

标签: sql oracle

  

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

0 个答案:

没有答案