考虑两个表的SQL查询

考虑两个表的SQL查询,sql,Sql,有一个名为xengallery\u album\u permissions的表,其列为:album\u id int(10),permission enum('view','add'),access\u type enum('public','followered','members','private','shared') 还有另一个名为xengallery\u album的表,其列为:album\u id int(10),album\u state enum('visible','media

有一个名为xengallery\u album\u permissions的表,其列为:
album\u id int(10)
permission enum('view','add')
access\u type enum('public','followered','members','private','shared')

还有另一个名为xengallery\u album的表,其列为:
album\u id int(10)
album\u state enum('visible','mediated','deleted')

现在我有以下问题:

SELECT `album_id`
FROM `xengallery_album_permission`
WHERE `permission` = "view" AND `access_type` != "public"
但是我想过滤结果,并且只列出
album\u id
具有
album\u state=visible

如何修改查询以实现这一点?谢谢

选择p.album\u id
来自'xengallery\u album\u许可'p
a.album\u id=p.album\u id上的内部连接xengallery\u album a
其中p.permission=“查看”
和p.access_type!=“公众”
和a.album_state=“可见”
您可以尝试以下方法:

SELECT a.album_id
FROM xengallery_album_permission a
inner join xengallery_album b
on a.album_id == b.album_id
WHERE a.permission = "view" AND a.access_type != "public"
and b.album_state = "visible"

下面是一个简短的教程,向我们展示一些示例表数据和预期结果-所有内容都是格式化文本,而不是图像。在开始之前先看一看,你用的是什么产品?“SQL”只是一种查询语言,而不是特定数据库产品的名称(并且您的查询是无效的标准SQL)。请为您正在使用的数据库产品添加。