gpt4 book ai didi

mysql - 从两个表中过滤数据

转载 作者:行者123 更新时间:2023-11-29 01:10:20 27 4
gpt4 key购买 nike

请帮忙提出请求。

有两个表,artistalbum。我只想选择那些专辑中包含图片的艺术家。也就是说,如果 Actor 有10张专辑,其中只有一张有图片或没有包含,我想跳过(前提是所有专辑艺术家都有图片)

表格艺术家:

artist_id
---------|
1 |
2 |

表相册:

artist_id | album_id | picture_id
---------------------------------
1 | 122... | true
1 | 123... | false
2 | 124... | true
2 | 125... | true

所以,我只想选择 artist_id=2 的艺术家(因为所有专辑都有图片);

最佳答案

对此有很多解决方案,我首先想到的是一个非常简单的子选择,用于排除专辑中没有图像的艺术家:

SELECT
*
FROM
artist a
WHERE
artist_id NOT IN
(SELECT DISTINCT artist_id FROM album WHERE picture_id = false);

编辑:
如果您存储了没有专辑的艺术家,则也必须排除这些艺术家(请查看注释以获取解释)。在这种情况下,您必须添加如下内容:

AND
1 <= (SELECT COUNT(*) FROM album WHERE artist_id = a.artist_id)

关于mysql - 从两个表中过滤数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8970680/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com