Mysql
 sql >> Datenbank >  >> RDS >> Mysql

#1242 - Unterabfrage gibt mehr als 1 Zeile zurück - mysql

Da Ihre Unterabfrage mehrere Werte zurückgeben kann, ist IN sollte in deine where-Klausel passen.

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
)

eine Alternative dazu ist join beide Tabellen, was effizienter ist.

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