2016-04-25 2 views
0

У меня есть проблема, когда я делаю подзапросоперанд должен содержать 1 столбец (s) подзапрос MySQL

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'

операнд должен содержать 1 столбец (ы), почему?

ответ

0

Используйте соединение вместо подзапроса. Также ваш подзапрос может возвращать более 1 строки, поэтому он показывает ошибку. Чтобы избежать ограничения использования ошибки с каждым выбором, который не является лучшим решением, так как в этом случае он вернет только 1-ю строку.

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' 
Смежные вопросы