简体   繁体   English

我如何在带有左联接的mysql select查询中使用CASE?

[英]How do i use CASE in mysql select query with left join?

select  r.email,
        rc.cuisine_id,
        rc.restaurant_id, 
        c.id as c_id ,
        c.name as cus_name,
        r.image,
        r.web_address,
        r.area,
        rp.TypeId,  
        rp.PaymentStatus , 
        rp.RestaurantId 
from restaurant as r
left join restaurant_cuisine as rc on r.id=rc.restaurant_id
left join cuisine as c on rc.cuisine_id=c.id  where c.status='1'

Case statement that is needed 需要的案例说明

CASE WHEN rp.TypeId = '1' 
     THEN left join restaurant_payment as rp on r.id=rp.RestaurantId 
     WHEN rp.TypeId = '3'
     THEN left join users as u on rp.RestaurantId=u.id
END

Try this 尝试这个

select  r.email,
        rc.cuisine_id,
        rc.restaurant_id, 
        c.id as c_id ,
        c.name as cus_name,
        r.image,
        r.web_address,
        r.area,
        rp.TypeId,  
        rp.PaymentStatus , 
        rp.RestaurantId 
from restaurant as r
left join restaurant_cuisine as rc on r.id=rc.restaurant_id
left join cuisine as c on rc.cuisine_id=c.id  where c.status='1' and
rp.TypeId = CASE 
                 WHEN rp.TypeId = '1' 
                 THEN left join restaurant_payment as rp on r.id=rp.RestaurantId 
                 WHEN rp.TypeId = '3'
                 THEN left join users as u on rp.RestaurantId=u.id
            END

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM