0

ログインしたユーザーの友達であるユーザーのアクティビティのみを表示するユーザー アクティビティ フィードを作成しようとしています。

フィールド user1 と user2 は、友達リクエストの送信者と友達リクエストの受信者です。if..else問題は、ログインしているユーザーがどちらのフィールドにもいる可能性があるため、この特定の問題についてどのように声明を出すことができるか疑問に思っています.

基本的に私が欲しい:

IF user2 is $log_username SELECT user1 FROM friends...
ELSE
SELECT user2 FROM friends.

太字のコード (サブクエリ) は、私が特に言及しているものです。

$sql = "
SELECT * FROM status 
WHERE author in (
        SELECT user2 FROM friends 
        WHERE user1='$log_username'
          AND accepted='1' 
           OR user2='$log_username' 
          AND accepted='1'
    ) AND type='a' 
";

どんな助けでも大歓迎です。

4

2 に答える 2

1

ユニオンを使用:

$sql = "SELECT * FROM status WHERE author IN  
    (SELECT user1 FROM friends WHERE user1='$log_username' AND accepted='1'
     UNION 
    SELECT user2 FROM friends WHERE user2='$log_username' AND accepted='1')";
于 2013-05-04T18:47:18.673 に答える