2016-11-30 16 views
0

上の2つのテーブルを結合します。私はこれらの2つのテーブルに参加して、彼が従っているユーザーアクティビティを持つユーザーのアクティビティを取得する必要があります(user_id 6がuser_id 4に続いているとしましょう)。しかし、以下のクエリはidが6のユーザのアクティビティのみを返します。idの値が6のユーザのアクティビティに、彼が従っているユーザのアクティビティを加えたいとします。は、私は2つのテーブル<strong>activity_log</strong>と<strong>user_followers</strong>を持つ特定のテーブルのフィールド

クエリ

SELECT activity_log.* 
FROM activity_log 
    join user_followers ON activity_log.user_id = user_followers.follow_id 
     AND activity_log.user_id = 6; 

activity_log:

enter image description here

user_followers:

enter image description here

+0

あなたはあなたの問題点について私たちに説明していませんか?何かエラーがありますか?予期せぬ結果が出ることがありますか?より具体的にしてください – olibiaz

+0

あなたはそれがTwitterアカウントが何であるか自慢したいのであれば。あなたが問題を抱えていない限り、あなたは言及しませんでしたか? –

答えて

0

user_id6のアクティビティと彼がフォローしているユーザーのアクティビティが必要なように思えます。

SELECT activity_log.* 
FROM activity_log 
LEFT OUTER JOIN user_followers 
    ON activity_log.user_id = user_followers.follow_id 
WHERE (activity_log.user_id = 6 OR ISNULL(user_followers.user_id,0) = 6); 

LEFT OUTERは、user_id 6にフォロワーがない場合に使用されます。

+0

クエリを実行したときにこのエラーが発生しました 'SQLエラー(1582):ネイティブ関数 'ISNULL''の呼び出しでパラメータのカウントが正しくありません –

+0

最後にカンマゼロを忘れましたか? ISNULL(user_followers.user_id、** 0 **) – Eric

関連する問題