0

我有 2 张桌子。用户和表 2。在 table2 中,它可以有一个类似的条目

id = 1
right_user_id = 1
left_user_id = 2

在用户表中,可能没有 id 为 2 的用户。这意味着,以下 SQL 语句不会返回 id 为 1 的 table2-entry。

//php
$sql = 'SELECT t2.*, u.username AS u_name
        FROM users u, table2 t2
        WHERE t2.right_user_id = '.$user_id.'
              AND t2.left_user_id = u.user_id
        ORDER BY t2.time DESC';

但是我想获取 t2.* 条目的 id = 1 信息,并且 u_name 应该声明“(未知)”。

我需要什么样的 JOIN,我该怎么做?

4

1 回答 1

4
SELECT t2.*, case 
               when u.username is null 
               then 'Unknown' 
               else u.username 
             end AS u_name      
FROM table2 t2
left outer join users u on t2.left_user_id = u.user_id 
where t2.right_user_id = '.$user_id.'     
ORDER BY t2.time DESC; 
于 2012-05-27T20:41:57.380 回答