Apo*_*fix 5 mysql mysql-error-1242
我正在尝试创建一个select语句,从MySQL数据库中选择图像名称.该表名为 - pictures_archive.我也试图根据他们的类别选择这些图片.代码是:
SELECT pictures_archive_filename FROM pictures_archive
WHERE pictures_archive_id = (SELECT pictures_archive_id
FROM pictures_archive_category WHERE pictures_category_id = 9)
Run Code Online (Sandbox Code Playgroud)
它给了我一个"#1242 - Subquery返回超过1行"的错误.我可以看到原因,但无法弄明白该怎么做.
Joh*_*Woo 20
由于您的子查询可以返回多个值,因此IN应该适合您的where子句.
SELECT pictures_archive_filename
FROM pictures_archive
WHERE pictures_archive_id IN
(
SELECT pictures_archive_id
FROM pictures_archive_category
WHERE pictures_category_id = 9
)
Run Code Online (Sandbox Code Playgroud)
另一种选择是join两个表更有效.
SELECT pictures_archive_filename
FROM pictures_archive a
INNER JOIN pictures_archive_category b
ON a.pictures_archive_id = b.pictures_archive_id
WHERE b.pictures_category_id = 9
Run Code Online (Sandbox Code Playgroud)