left join 右表多条数据重复

Posted sjwudhwhhw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了left join 右表多条数据重复相关的知识,希望对你有一定的参考价值。

 

 

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 右表多条数据重复的主要内容,如果未能解决你的问题,请参考以下文章

left join 右表对应多条记录取第一条

mysql left join 右表存在重复数据,怎么处理

a表 left join b表 为啥 b表里的的数据没了

如何在没有重复的情况下在 hive 中执行 LEFT OUTER JOIN 以仅检查右表中的一个值?

mysql left join 左连接查询关联n多张表

mysql left join 左连接查询关联n多张表