我尝试进行查询以连接TABLE_A.CONTENT_PKEY和TABLE_B.REL_PKEY上的两个表。我想要的是基于TABLE_A.CONTENT_PKEY获得唯一的结果,并显示TABLE_B.FB_LINE TABLE_A.CONTENT_PKEY和TABLE_B.REL_PKEY匹配。
但是在我的结果中,列TABLE_B.FB_LINE具有所有空值。在TABLE_B中,没有单个条目,其中TABLE_B.FB_LINE为空(由select语句确认),所以我很困惑它是如何获得该结果的。
SELECT TABLE_A.PROD_SKU_NUM, TABLE_A.LONG_DESC, TABLE_A.LOCALE_ID, TABLE_B.FB_LINE, TABLE_A.CONTENT_PKEY
FROM TABLE_A
LEFT JOIN TABLE_B ON TABLE_A.CONTENT_PKEY=TABLE_B.REL_PKEY
WHERE (TABLE_A.LOCALE_ID='en_ca' OR TABLE_A.LOCALE_ID='fr_ca')
ORDER BY TABLE_A.PROD_SKU_NUM DESC
答案 0 :(得分:1)
在左(外)连接中,如果在右表中找不到左表的值,则会添加空值
例如
A.X A.Y B.X B.Z
3 2 3 5
9 10
A LEFT JOIN B ON A.X = B.X
会给出
A.X A.Y B.Z
3 2 5
9 10 null
我想你想做一个内部联接。您只需删除单词" LEFT"。
预期结果将是
A.X A.Y B.Z
3 2 5