困在MySQL的Group by陷阱中两天
这两天,一直对我的SQL语句得不出正确结果而苦恼。SQL语句类似这样的:
Select * from A left join b on A.id=B.id and A.date<B.date where A.id>10 and B.date<'2006-09-01' group by A.date
结果一行数据都没有
刚才解决了,正确的SQL居然是这样:
Select * from A left join b on A.id=B.id and A.date<B.date and B.date<'2006-09-01' where A.id>10 group by A.date
将“and B.date<'2006-09-01'”从“where”移到“on”中
看来,当SQL语句有“group by x”结尾时,“where”条件中出现的字段必须和“x”字段都属于同一张表。
页:
[1]