1

次のような構造を持つ2つのテーブルがあります

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'.

ただし、2 番目のテーブルで一致が見つからない場合、行は返されませんfavs。私が望むのは、結果が見つかった場合は両方の列を返し、そうでない場合は2番目の列を含む両方の列を返すことですNULL

どうすればいいですか?

4

1 に答える 1

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' 
于 2013-02-08T19:03:40.950 に答える