如果绑定字段为空,如何使用左连接发出请求MYSQL

时间:2015-07-03 06:18:31

标签: mysql database

我目前的要求如下

SELECT t.*, cat.name AS cat_name, user.name AS user_name
FROM products AS t
LEFT JOIN category AS cat ON cat.id=t.category_id
LEFT JOIN users AS user ON user.id=t.user_id
WHERE cat.parent_id=7

即使绑定字段cat.idt.category_idNULL,我也需要获得结果。现在在这种情况下我没有结果。

在这种情况下可以解决什么问题?

2 个答案:

答案 0 :(得分:1)

问题是当任一操作数为NULL时,相等(=)始终为false。一个基本的解决方案是显式测试两个值是否都为NULL:

LEFT JOIN category AS cat
       ON cat.id = t.category_id
          OR (cat.id IS NULL AND t.category_id IS NULL)

P.S。善待下一个必须阅读你的代码的人(或者从现在起六个月后你自己)并且不要给你的表单字符别名。

答案 1 :(得分:0)

尝试为 -

SELECT t.*, cat.name AS cat_name, user.name AS user_name
FROM products AS t
LEFT JOIN category AS cat ON cat.id=t.category_id and cat.parent_id=7
LEFT JOIN users AS user ON user.id=t.user_id
相关问题