我的桌子:
表cat
有id, name
表user
有id, uname, catid
样本数据:
猫表
1 | Cate one 2 | cate two
用户表
1 | sam | 1 2 | dam | 0
我的查询是
SELECT cat.id, cat.name
FROM cat LEFT JOIN user
ON cat.id = user.catid
WHERE user.id = 2
由于没有id
0的类别,我得零行
如果没有行,我希望NULL
或零作为结果。
我该怎么做?
答案 0 :(得分:11)
您需要将左连接转为右连接或交换表格:
SELECT cat.id, cat.name
FROM user LEFT JOIN cat ON cat.id = user.catid
WHERE user.id = 2
使用您的示例数据,这将为您提供包含空值的行。
答案 1 :(得分:6)
将您的LEFT JOIN
更改为RIGHT JOIN
...应该从用户表中提取所有内容,如果可用,则从类别表中提取任何内容。