我不知道如何表达这个问题,所以我将使用一个典型的例子。想象一下,我有一个带有 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/