当前位置:   article > 正文

mysql left join 只要一条_mysql:left join但是从连接表中选择一个特定项

mysql left join 只关联一条数据

我只需要从两个相应的表中选择一行,例如,

会员表,

member_id member_name

1 xxx

2 yyy

profile_picture表

image_id member_id image_approved

1 1 no

2 1 no

3 1 yes

我想每次从成员表中选择一行,从profile_picture中选择一个已批准的图像.我正在使用左连接,但它不能正常工作,因为当该成员有超过1个上传的图像时,它复制了所选成员.棘手的部分是我想选择仅被批准的图像,并且总是一张图片将被批准.

SELECT *

FROM member

LEFT JOIN profile_picture

ON profile_picture.member_id = member.member_id

WHERE member.member_id = '1'

我想把它作为输出,

member_id member_name image_id image_approved

1 xxx 3 yes

可能吗?

谢谢.

编辑:

谢谢你的建议.很多人建议使用AND – 例如,AND profile_picture.image_approved =’yes’

它只在图像存在时才有效.但如果图像不存在,输出中没有任何内容,即使图像不存在也应如下输出.

member_id member_name image_id image_approved

1 xxx null null

再次感谢!

最佳答案

select

*

from

member m

left join profile_picture p on p.member_id = m.member_id

where

m.member_id = '1'

and (p.image_approved is null or p.image_approved = 'yes')

image_approved不是连接条件的一部分,所以我不把它放在join子句中.它是行选择条件的一部分,所以它进入了哪里.考虑一下你想要什么,你要么在profile_picture或者批准的行中都不需要.所以,条件.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/994484
推荐阅读
相关标签
  

闽ICP备14008679号