即使在第二个表中找不到匹配项,也可以从第一个表中获取结果 - MySQL

时间:2013-02-08 19:02:03

标签: mysql select left-join

我有两张表,其结构如下

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

我该怎么做?

1 个答案:

答案 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'