2015-11-04 67 views
-1

我有3個表像下MySQL的產生,如果條件

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

我不是要求你爲我編寫代碼,但你能告訴我使用什麼方法嗎?

回答

2

如果我理解正確的話,你可以使用一個outer joincase聲明:

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 
+0

確定。它工作完美 –