SQL在联接没有记录时显示记录
如果SQL在联接没有记录时显示记录,sql,join,Sql,Join,如果(tblProductOptions.ID=5)那么它可以工作,有一个ID=5的选项。如果它是(tblProductOptions.ID=99999),则它不返回任何内容,因为没有ID=99999的选项 我想修改该语句,使其在传递无效选项ID时仍然返回产品记录!这可能吗 谢谢 将交叉连接更改为左连接,并且(因为WHERE将结果限制为非空)更改您的WHERE to be SELECT tblProducts.productName, tblProducts.ba
(tblProductOptions.ID=5)
那么它可以工作,有一个ID=5的选项。如果它是(tblProductOptions.ID=99999)
,则它不返回任何内容,因为没有ID=99999的选项
我想修改该语句,使其在传递无效选项ID时仍然返回产品记录!这可能吗
谢谢 将
交叉连接
更改为左连接
,并且(因为WHERE将结果限制为非空)更改您的WHERE to be
SELECT tblProducts.productName,
tblProducts.basePrice,
tblProductOptions.optionDescription
FROM tblProducts CROSS JOIN tblProductOptions
WHERE (tblProducts.ID = 3) AND (tblProductOptions.ID = 5)
将
交叉连接
更改为左连接
,并且(因为WHERE将结果限制为非空)更改您的WHERE to be
SELECT tblProducts.productName,
tblProducts.basePrice,
tblProductOptions.optionDescription
FROM tblProducts CROSS JOIN tblProductOptions
WHERE (tblProducts.ID = 3) AND (tblProductOptions.ID = 5)
交叉连接是笛卡尔积。。可能不是你想要的。
我建议改为内部联接,交叉联接是笛卡尔积。。可能不是你想要的。 我建议改为内部连接选择tblProducts.productName、tblProducts.basePrice、tblProductOptions.Option来自tblProducts的说明左外部连接tblProductOptions位于tblProductOptions.ID=9上,其中(tblProducts.ID=3)非常有效谢谢:)选择tblProducts.productName,tblProducts.basePrice,tblProductOptions.OPTIONE来自tblProducts LEFT OUTER的说明在tblProductOptions.ID=9上加入tblProductOptions,其中(tblProducts.ID=3)起作用非常感谢:)