问题:要做一个mysql的复杂查询 多表查询 且包含 子连接
解决:
select c.*,d1.debt,d2.hasorders from dw_customerinfo c left join (select d.customerid, sum(d.price)>sum(d.pay) debt from dw_ordersdetail d where d.state='1' and d.pubtime<= now() group by d.customerid) d1 on c.id=d1.customerid
left join (select d.customerid, count(d.customerid)>0 hasorders from dw_ordersdetail d group by d.customerid) d2 on c.id=d2.customerid
方案1:ps: 测试未通过
Select * FROM t1 LEFT JOIN (t2, t3, t4) ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)
方案2:ps:测试通过
SELECT artists.Artist, cds.title, genres.genre
FROM cds
LEFT JOIN genres N cds.genreID = genres.genreID
LEFT JOIN artists ON cds.artistID = artists.artistID;
参考资料:
Mysql 多表联合查询效率分析
http://blog.youkuaiyun.com/hguisu/archive/2010/07/13/5731880.aspx
MySQL多表连接查询Left Join,Right Join
本文探讨了MySQL中复杂的多表查询实现方法,包括使用子连接进行多表左连接查询的具体示例,并对比了两种不同方案的效果。同时,提供了有效的查询语句用于联合多个表并筛选有用的数据。
961

被折叠的 条评论
为什么被折叠?



