MySQL根据if条件生成一列

时间:2015-11-04 23:39:57

标签: mysql sql

我有3个表,如下面的

User      Advertisement      Payment

id        id                 id
name      title              user_id
address   description        ad_id
                             payment_type

对于这些表格,我想为登录用户生成如下表格,无论payment_type如何:

id    title        is_paid
1     first ad      0 //if not paid
2     second ad     1 //paid
3     third ad      1 
4     fourth ad     0 
5     fifth ad      1 

到目前为止,我无法执行任何操作,因为我不知道如何在mysql m中添加额外的列或在查询中使用if condition

我不是要求你为我编写代码,但是你可以让我知道使用什么方法吗?

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您可以outer join使用case声明:

select a.id, a.title, 
    case when p.id is not null then 1 else 0 end is_paid
from advertisement a
    left join payment p on a.id = p.ad_id and p.user_id = 123