gpt4 book ai didi

mysql - 检查MySQL数据库数据是否不存在

转载 作者:行者123 更新时间:2023-11-29 03:14:34 25 4
gpt4 key购买 nike

我在我的 MySQL 数据库中设置了我的歌曲。

每首歌曲要么分配有多个位置,要么根本没有位置。

只有那些在数据库中没有分配位置或分配了以下指定位置的歌曲才应该从数据库中提取。

希望当你理解我下面的查询时它会有意义

SELECT s.* FROM roster_songs AS s 
LEFT JOIN roster_songs_locations AS sl ON sl.song_id = s.id
WHERE EXISTS (
SELECT sl2.* FROM roster_songs_locations AS sl2 WHERE s.id != sl2.song_id
) OR (
sl.location_id = '88fb5f94-aaa6-102c-a4fa-1f05bca0eec6'
OR
sl.location_id = '930555b0-a251-102c-a245-1559817ce81a'
)
GROUP BY s.id

查询几乎可以正常工作,除了它会从数据库中提取歌曲,这些歌曲分配给 sl.location_id,但在上述查询中未指定。我认为这与我的 EXISTS 代码拾取它们有关......

我有什么想法可以让它发挥作用吗?

最佳答案

如果没有与位置关联的位置,sl.location_id 将为null,因此只需将其添加到您的WHERE:

SELECT s.* FROM roster_songs AS s 
LEFT JOIN roster_songs_locations AS sl ON sl.song_id = s.id
WHERE
sl.location_id = NULL
OR
sl.location_id = '88fb5f94-aaa6-102c-a4fa-1f05bca0eec6'
OR
sl.location_id = '930555b0-a251-102c-a245-1559817ce81a'
)
GROUP BY s.id

关于mysql - 检查MySQL数据库数据是否不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810066/

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