就这样放出来怎么看
汗。。。第一次提问,理解理解
@menz_i: 你应该这么办
SELECT a.* FROM auctioncommendity a LEFT JOIN auctionbid b ON a.id=b.auctioncommendityid WHERE a.id='000000004ef2f390014ef3024f230015';
对于left join,不管on后面跟什么条件,左表的数据全部查出来,因此要想过滤需要把条件放到where后面
对于inner join,满足on后面的条件表的数据才能查出,可以起到过滤作用。也可以把条件放到where后面。
@MrNice: 原来是这样,太谢谢了
怎么可以没有作用了,你需要看你的左连接与内连接的结果是什么呀,再看AND给你过滤了什么
内连接没有一条记录,左连接有几条记录,而且a.id为其他的记录也全都显示出来了,也就是说这个and条件没有过滤一条记录
建议楼主先去了解SQL left join、inner Join、right Join 的区别,
http://www.cnblogs.com/pcjim/articles/799302.html
如果你把AND 条件放在WHERE 后面,你就会发现和内链接是一样的结果
了解了上面的区别,你就能看出比较了
谢谢
你这种查询可以直接用等值查询的
谢谢
在第一条语句中,你的and是作为左连接的条件的,这个时候,无论是否匹配,左表都会查出来。根本所在,还是仔细了解下几种连接的差异。。
谢谢