网站制作学习网PHP→正文:mysql left join 右表多条数据重复
字体:

mysql left join 右表多条数据重复

PHP 2011/7/12 18:46:32  点击:不统计

<网f站o学a习s制p作.cn>

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 是说不准查出那条来的。

我就是这样解决的。


http://%77%77%77%2E%66网站制作%6F学习网%72%61%73%70%2E%63%6E

·上一篇:PHP获取本地IP >>    ·下一篇:WINDOWS + WAMP + Zend Framework 配置(转载) >>
推荐文章
最新文章