2016-04-25 4 views
0

Ich habe Problem, wenn ich eine Unterabfrage machenOperand sollte 1 Spalte (n) Unterabfrage MySQL enthalten

select r.Request_ID, 
 
(
 
(select e.ReportsTo, (select e1.FirstName from Employees e1 where e1.NIK = e.ReportsTo) as FirstName, 
 
(select e1.NIK from Employees e1 where e1.NIK=e.NIK) as Attention, 
 
(select e1.FirstName from Employees e1 where e1.NIK=e.NIK) as AttentionName 
 
from Employees e where e.ReportsTo ='CS-NIK-2016-0150' and e.NIK='CS-NIK-2016-0160') 
 
) 
 
from Request r where r.Request_ID='CS-REQ-BDG-201604-10099'

Operand sollte 1 Spalte (n) enthalten, warum?

Antwort

0

Verwenden Sie Join statt Unterabfrage. Auch Ihre Unterabfrage kann mehr als 1 Zeile zurückgeben, also zeigt es den Fehler an. Um den Fehler zu vermeiden, verwenden Sie das Limit für jede Auswahl, was nicht die beste Lösung ist, da in diesem Fall nur die erste Zeile zurückgegeben wird.

select r.Request_ID, 
(
(select e.ReportsTo, (select e1.FirstName from Employees e1 where e1.NIK = e.ReportsTo limit 1) as FirstName, 
e.NIK as Attention, FirstName as AttentionName 
from Employees e where e.ReportsTo ='CS-NIK-2016-0150' and e.NIK='CS-NIK-2016-0160') 
) 
from Request r where r.Request_ID='CS-REQ-BDG-201604-10099' 
Verwandte Themen