mysql - 如何选择选定相册中的照片

标签 mysql

我不知道如何表达这个问题,所以我将使用一个典型的例子。想象一下,我有一个带有 3 个表的相册的通用设计 - 照片、相册、photo_albums(查找表)。专辑名称为 A、B 和 C。

如何找到 A 和 C 中的所有照片?

最佳答案

如果您的表格设计如下所示,并且您想要过滤专辑名称。然后你可以这样做:

SELECT
    *
FROM
    photos
WHERE EXISTS
(
    SELECT
        NULL
    FROM
        photo_albums
        JOIN albums
            ON photo_albums.albumId=albums.albumId
    WHERE
        photos.photoId=photo_albums.photoId
        AND albums.albumName IN ('A','B')
)

我认为更好的解决方案是通过 Id 来完成此操作(如果您有 Id)。像这样:

SELECT
    *
FROM
    photos
WHERE EXISTS
(
    SELECT
        NULL
    FROM
        photo_albums
    WHERE
        photos.photoId=photo_albums.photoId
        AND photo_albums.albumId IN (1,3)
)

关于mysql - 如何选择选定相册中的照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22603027/

相关文章:

MySQL显示整个组,组内按字母顺序排序

mysql - 无法添加外键mysql错误1215

mysql - 如何从sql表中删除未知行数

php - Zend_DB 将大量数据导出到 csv 的正确策略是什么? – block – fetchAll – fetchRow

PHP注册/登录错误

MySQL TEXT内存分配

mysql - 在SQL中的几个值中查找多个值

php - 保护数据库中的密码字段

php - 为什么我的旧密码无法更改为新密码

python - 1045、 "Access denied"使用两个 python 文件,一个有效,另一个 "Access denied"?