2016-06-01 26 views
0

Ich versuche, eine NESTED-Abfrage/SUBQUERY in SQL auszuführen. Die zweite Abfrage (oder die Unterabfrage stammt aus einer anderen Tabelle). Ich habe versucht, die folgende Abfrage, aber es schlägt fehl, einen Fehler "Beziehung existiert nicht". Obwohl die Abfrage für sich selbst erklärt, wie sollte ich dieses Problem angehen?SUBQUERY (aus einer anderen Tabelle) in Sql

SELECT 
     key 

    FROM 
     user_details 

    WHERE 
     user_id = (SELECT * FROM company_details WHERE type ='ABC'); 
+0

Wie 'user_details' und' company_details 'beziehen sich aufeinander? Bitte [editieren] Sie Ihre Frage fügen Sie die Definition der Tabellen einige Beispieldaten und die erwartete Ausgabe basierend auf diesen Daten. _Formatted text_ please, [keine Screenshots] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a-question/285557 # 285557) –

Antwort

0

Use 'in' anstelle von '=': -

Rel_user_id ist die Beziehung zwischen user_details und company_details

SELECT 
     key 

    FROM 
     user_details 

    WHERE 
     user_id in (SELECT distinct Rel_user_id FROM company_details WHERE type ='ABC'); 
+0

'company_details' ist eine andere Tabelle als 'user_details' – Betafish

+2

Wirklich? 'user_id in (*)'? – sagi

+1

Das distinct in der Unterabfrage ist nutzlos –

0
SELECT 
    key 

FROM 
    user_details ud 

WHERE 
    exists (SELECT 1 FROM company_details cd 
    WHERE cd.type ='ABC' and cd.Rel_user_id = ud.user_id) 
0
SELECT DISTINCT 
     ud.key 

    FROM 
     user_details ud 
    JOIN company_details cd ON ud.user_id = cd.Rel_user_id 

    WHERE cd.type ='ABC' 
Verwandte Themen