查询根据列的结果添加列

时间:2010-03-28 07:19:56

标签: sql mysql

我有一个用户表'users',其中包含以下字段:

id
first_name
last_name
...

并有另一个确定关系的表:

user_id
friend_id
user_accepted
friend_accepted
....

我想生成一个选择所有用户的查询,但也要添加另一个字段/列,说'network_status'取决于user_accepted和fiend_accepted的值。例如,如果user_accepted为true,则friend_accepted为false我希望'network_status'字段说'request sent'。我可以在一个查询中执行此操作吗? (我不想在查询中使用if / else,但如果这是唯一的方式,那么就是这样)

1 个答案:

答案 0 :(得分:3)

您必须查看CASE Statement

这样的东西
SELECT  u.id,
        u.first_name,
        u.last_name,
        CASE 
            WHEN r.user_accepted = 1 AND r.friend_accepted = 0
                THEN 'request sent'
            ELSE 'Not sure'
        END
FROM    users u LEFT JOIN
        relationships r ON u.id = r.user_id