반응형
MySQL 데이터베이스에서 이미지 이름을 선택하는 select 문을 만들려고합니다. 테이블 이름은 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)
"# 1242-하위 쿼리에서 행이 두 개 이상 반환 됨"오류가 발생합니다. 이유는 알 수 있지만 어떻게해야하는지 알 수 없습니다.
해결 방법
하위 쿼리가 여러 값을 반환 할 수 있으므로 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
)
이에 대한 대안은 더 효율적인 두 테이블을 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
참조 페이지 https://stackoverflow.com/questions/12597620
반응형
'MySql' 카테고리의 다른 글
MySQL Converting MYSQL table data directly to an XML in PHP (0) | 2021.01.26 |
---|---|
MySQL Convert binary string to bigint in MySQL? (0) | 2021.01.26 |
MySQL: Count entries without grouping? (0) | 2021.01.26 |
MySQL Does import of a .sql file to MySQL overwrite the existing db or append to it? (0) | 2021.01.26 |
MySQL-SELECT 쿼리를 기반으로하는 UPDATE 쿼리 (0) | 2021.01.26 |
댓글