gpt4 book ai didi

postgresql - 如何显示至少有一张批准照片的相册

转载 作者:行者123 更新时间:2023-11-29 14:20:21 24 4
gpt4 key购买 nike

我有两个表:一个是album,另一个是album_photo。我需要显示至少有一张批准照片的相册。我有以下表格字段:

album
Id name date
1 myalbums 1-1-10
2 youralbum 2-3-10
3 somealbum 3-4-10

album_photo
id album_id photo_url status
1 2 /some/url Pending
2 1 /some/url Approved
3 1 /some/url Approved
3 3 /some/url Declined

上表中只有id为1(“myalbum”)的相册有认可的照片,其他两个相册没有认可的照片。所以我想要一个显示至少有一张批准照片的相册名称的查询。

我试过这样的:

select a.*, a.id as album_id, ap.*  
from album a, album_photo ap
where a.id = ap.album_id
and (select count(*) from album_photo where ap.status = 'Approved') > 0;

最佳答案

尽管在开始时就加入了它们,但您的查询还是有点错误,只是在 where 子句中加入它们。

select a.*,a.id as album_id from album a
where (select distinct ap.album_id from album_photo ap where
ap.album_id=a.id and ap.status='Approved')>0;

休息吧,你所做的一切都是正确的。另一种解决方案是没有 distinct 的,因为我们知道 id 始终是唯一的,因此可以删除内部查询中的 distinct 并可以如下编写。

select a.*,a.id as album_id from album a
where (select count(*) from album_photo ap where
ap.album_id=a.id and ap.status='Approved')>0;

关于postgresql - 如何显示至少有一张批准照片的相册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30122563/

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