码迷,mamicode.com
首页 > 其他好文 > 详细

left join 右表多条数据重复

时间:2018-12-21 17:42:31      阅读:340      评论:0      收藏:0      [点我收藏+]

标签:零基础   重复   查询   就是   div   apt   order   遇到   图片   

 

 

mysql的left join从两个表中联合查询数据,以左表为主,右表为辅。如果左表中有的内容右表中没有,则用null填充。这是一般的常见的解释。也很容易理解。但是在做右表的多数据查询的时候就得写条件了。

我写一个产品-产品图片的分页过程中需要查出一个图片即可。但是在用mysql的left join中,左表为product,键为pid。右表为image主键为imageid,外键为pid。
查询语句入下

select product.* from product left join image using(pid);
当输出结果时发现,当一个产品数据对多个图片数据时,产品会出现重复。这就是遇到的麻烦,查询网络上有人有这样的问题,

但是都是通过分步来解决,即查询完毕产品数据,然后循环的时候再进行图片查询并查询1个输出。

我想了半天,采用了另一种方法解决,left join 右表多条数据的情况,根据上面的我写了如下sql语句
select product.*,foraspcn.image from product left join(select imagename,pid from image group by pid) as foraspcn

using(pid);
这样查询出来就是一个产品对应一个图片

即,在查询右连接的表时,查询的就是1条数据,通过groupby 来进行数据检索。当然这样的group by 是说不准查出那条来的。

我就是这样解决的。

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!希望你也加入到我们人工智能的队伍中来!https://www.cnblogs.com/captainbed

left join 右表多条数据重复

标签:零基础   重复   查询   就是   div   apt   order   遇到   图片   

原文地址:https://www.cnblogs.com/sjwudhwhhw/p/10156942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!