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 回答
0

IFSQL 语句内的CASE. 像这样的东西(不确定这是否给了你想要的东西,只是为了展示这个概念)。

$sql = "
SELECT * FROM status 
WHERE author in (
        SELECT CASE WHEN user2 = '$log_username' THEN user1 ELSE user2
               END
         FROM friends 
        WHERE user1='$log_username'
          AND accepted='1' 
           OR user2='$log_username' 
          AND accepted='1'
    ) AND type='a' 
";
于 2013-05-04T21:30:09.267 回答