2016-06-18 13 views
0

Dies ist ein Teil einer komplexen Unterabfrage, ich bin den obigen Fehler auf dieser Abfrage erhalten:SQL- Subquery liefert mehr als 1 Zeile

select 
    product_id 
from 
    oc_product_filter 
where 
    product_id IN (
        (select 
        a.product_id 
        from 
        oc_product_filter a 
        where 
        a.filter_id in (8) 
       ), 
        (select 
        b.product_id 
        from 
        oc_product_filter b 
        where 
        b.filter_id in (25) 
       ) 
       ); 

Antwort

1

Was kommt nach den IN sollte ein Tupel sein, Elemente. Sie haben ein Tupel aus zwei Elementen, wobei jedes Element das Ergebnis einer Unterabfrage ist. Sie dürfen dies nur tun, wenn die Unterabfrage 1 Zeile und 1 Spalte zurückgibt. Es sieht hier nicht so aus.

Ihre Abfrage scheint zu komplex für das, was sie tun soll.

Warum nicht:

SELECT product_id 
FROM oc_product_filter 
WHERE filter_id IN (8, 25); 
+0

das ist eigentlich die gesamte Abfrage ist ein Teil einer Sub-Abfrage nach vieler Suche dachte ich, das ist die beste Lösung für mein Problem wäre, hier ist der Link zu meiner komplexen Abfrage http://stackoverflow.com/questions/37894522/compare-multiple-column-values –

Verwandte Themen