2016-08-10 15 views
1

ここジョイントテーブルの単一列の条件を書き込む方法は?

SELECT s.* 
    , u.email 
    , u.first_name 
    , COUNT(l.tweet_id) as likes 
    , l.user_tweetid 
    FROM social_tweets AS s 
    JOIN users AS u 
    ON s.user_id = u.id 
    left 
    JOIN social_likes AS l 
    ON s.id = l.tweet_id 
WHERE s.user_id IN ($string) 
group 
    by s.id 
ORDER 
    BY created_date DESC 
LIMIT 7 

を次のように私は、クエリを持って、私はすべてのIDを取得しています。しかし、私は単にl.user_tweetid = '246'がほしいと思う。 WHERE条件をその列だけに適用するにはどうすればよいですか?以下のように

答えて

2

書き込み:私が正しくあなたの質問を理解していれば、あなたの質問のために、あなただけの特定l.user_tweetidでただ一つのレコードが欲しい

SELECT s.*, u.email, u.first_name, COUNT(l.tweet_id) as likes, l.user_tweetid 
FROM social_tweets AS s 
JOIN users AS u ON s.user_id = u.id 
LEFT JOIN social_likes AS l ON s.id = l.tweet_id AND l.user_tweetid = @YourTwiteId 
WHERE s.user_id IN ($string) 
GROUP BY s.id 
ORDER BY created_date DESC 
LIMIT 7; 
0

は、あなたの代わりにWHERE句でフィルタ条件を使用する必要がありますJOIN句の、すなわち

SELECT s.*, u.email, u.first_name,COUNT(l.tweet_id) as likes,l.user_tweetid 
FROM social_tweets AS s 
     JOIN users AS u ON s.user_id = u.id 
    left JOIN social_likes AS l ON s.id=l.tweet_id 
WHERE s.user_id IN ($string) 
    and l.user_tweetid = '246' 
GROUP BY s.id 
ORDER BY created_date DESC LIMIT 7; 

あなたはSQL join: where clause vs. on clause

で両者の違いを見つけることができます
関連する問題