Mysql连接两张表并在所有表中设置组

您好,我的数据库中有两个表,客户和商店。


我想获得所有客户并澄清客户是否是债务人。


对于这项工作,我想创建一个 mysql 查询来获取客户并加入商店表。我想为 if shops.price_statuscolumn = 1 come 和 shops 表中的总价格值设置条件。


否则,商店表中价格列的那些行的值等于 0。


我的商店表结构和一些示例数据


id   customer_id   product_id  price    price_status

1    81            12          300      1

2    81            12          100      0

3    81            15          200      1

4    90            10          600      0

5    90            15          50       1

6    63            16          10       0

还有我的客户表(你应该知道有些客户不购买任何产品,因为我想看到他们)


id   name

63.  Eva

64.  Nva

81.  Ali

82.  Bill

90.  Mosh


我想得到这个结果


Eva.   0.  // Because price status = 0

Nva.   0.  

Ali.   500 // because have two row that prices status = 1

Bill.  0. 

Mosh.  50. // Because have one row with price status = 1


拉莫斯之舞
浏览 119回答 1
1回答

ibeautiful

这可以做[MySQL if][1]SELECT    c.`name`,sum(if(s.price_status=1,s.price,0)) as priceFROMcustomer AS c    LEFT JOIN    shops AS s    ON         c.id=s.customer_id GROUP BY    c.id;如果你接受 null 值,price你可以使用SELECT    c.`name`,sum(s.price_status*s.price) as priceFROMcustomer AS c    LEFT JOIN    shops AS s    ON         c.id=s.customer_id GROUP BY    c.id;
打开App,查看更多内容
随时随地看视频慕课网APP