我有两张表,其结构如下
Table name = counter
ref_id INT NOT NULL
count INT NOT NULL
Table name = favs
disqus_id VARCHAR(32) NOT NULL
user_id INT NOT NULL
dormant VAHCHAR(10) NOT NULL
我运行此查询=> SELECT count, dormant FROM counter AS c LEFT JOIN favs AS f ON c.ref_id = f.disqus_id WHERE ref_id = 'post_5' AND user_id = '1'.
但如果在第二个表favs
中找不到匹配项,则不返回任何行。我想要的是,如果找到结果,它应返回两列,否则返回两列,第二列为NULL
我该怎么做?
答案 0 :(得分:1)
ON
子句
SELECT c.count, f.dormant
FROM counter AS c
LEFT JOIN favs AS f
ON c.ref_id = f.disqus_id AND f.user_id = '1'
WHERE c.ref_id = 'post_5'
或者如果仍然不起作用,请同时移动:
SELECT c.count, f.dormant
FROM counter AS c
LEFT JOIN favs AS f
ON c.ref_id = f.disqus_id AND
f.user_id = '1' AND
c.ref_id = 'post_5'