gpt4 book ai didi

sql - 小复杂的sql

转载 作者:行者123 更新时间:2023-12-01 00:33:50 27 4
gpt4 key购买 nike

我有专辑表和专辑权限表。

专辑专辑编号姓名私有(private)(值是或否)

相册许可ID专辑编号用户ID

**albums** 
album_id name private
1 family yes
2 friend no
3 outdoor pic yes

**album permission**
id album_id user_id
1 3 5

现在我想获取我已获得许可的所有专辑列表。这意味着如果 album.private = no 或者我的 id (5) 存在于权限表中,那么该行应该在列表中,否则它不应该显示在列表中。

下面应该在结果中显示我

**albums result set** 
album_id name private
2 friend no
3 outdoor pic yes -- < this showing me, because i exist in the permission table

最佳答案

诀窍是左加入相册权限,这意味着每个相册都将被选中,如果有与之关联的权限记录,该记录也将被选中。

然后只需添加一个 where 子句,说明相册不能是私有(private)的,或者应该存在权限记录。

SELECT Albums.Album_ID, Albums.Name, Albums.Private
FROM Albums
LEFT JOIN AlbumPermissions ON Albums.Album_ID = AlbumPermissions.Album_ID
AND AlbumPermissions.User_ID = 5
WHERE
Albmums.private == 'no'
OR AlbumPermissions.ID IS NOT NULL

关于sql - 小复杂的sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1598202/

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