繁体   English   中英

连接没有记录时的SQL显示记录

[英]SQL show record when join has no records

SELECT     tblProducts.productName, 
           tblProducts.basePrice, 
           tblProductOptions.optionDescription
FROM       tblProducts CROSS JOIN tblProductOptions
WHERE      (tblProducts.ID = 3) AND (tblProductOptions.ID = 5)

如果(tblProductOptions.ID = 5)起作用,则有一个ID = 5的选项。如果它是(tblProductOptions.ID = 99999)则它不返回任何内容,因为没有ID = 99999的选项。

我想修改该语句,以便在传递无效的选项ID时仍返回产品记录! 这可能吗?

谢谢!

CROSS JOIN是笛卡尔乘积..可能不是您想要的。 我建议改为INNER JOIN

CROSS JOIN更改为LEFT JOIN ,然后(由于WHERE将结果限制为NON null)将WHERE更改为

WHERE (tblProducts.ID = 3) 
AND   (tblProductOptions.ID = 5 OR tblProductOptions.ID IS NULL) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM