我需要选择所有用户,无论他们是否有图像,如果有,则选择主图像。这对你来说可能很简单,但对我来说却很难。
我有 2 个表 users , images
Users Table
Id | name |
1 xyz
2 abc
3 qwe
4 rty
Images Table
Id | user_id | image_path | is_primary
1 1 path 0
2 1 path 1
3 2 path 1
4 4 path 0
**Result I'm expecting**
name | image_path | is_primary
xyz | path | 1
abc | path | 1
qwe | null | 0 (this user has no image in images table)
rty | path | 0
我不知道该怎么做。它对我来说看起来很复杂,因为我知道它不能只用 "AND"、 "Having"或 "sub query"来完成。
最佳答案
试试这个:
SELECT
users.name, Images.image_path, IF(MAX(Images.is_primary)=1, 1, 0)
FROM
users
LEFT JOIN
Images
ON
Images.user_id = users.Id
GROUP BY
users.Id
让我们用 MAX 添加一个聚合......
关于mysql - 在mysql中选择父是否有子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40798586/