2016-07-13 5 views
0

Подзапрос возвращает более 1 строки? sulution?Подзапрос возвращает более 1 строки?

SELECT `t_files`.*, `t_users`.`username`, 
 
(SELECT CONCAT(b.first_name, " ", b.last_name) 
 
\t FROM t_files AS a 
 
\t JOIN t_users as b 
 
      ON b.id = a.user_id 
 
) as upload_by 
 
FROM `t_files` 
 
LEFT JOIN `t_files_permission` 
 
    ON `t_files_permission`.`id_files` = `t_files`.`file_id` 
 
LEFT JOIN `t_users` 
 
    ON `t_users`.`id` = `t_files_permission`.`id_users` 
 
WHERE `t_files`.`company_id` = '1' 
 
    AND `t_files_permission`.`id_users` = '59' 
 
    AND `is_deleted` =0

+0

Добавить DISTINCT в свой дополнительный запрос. – eyeshield21

ответ

0

Добавить условие в вашем запросе к югу, как показано ниже

ВЫБРАТЬ t_files. *, t_users. username, (SELECT CONCAT (b.first_name "", b.last_name) ОТ t_files в качестве РЕГИСТРИРУЙТЕСЬ t_users AS B ON b.id = a.user_id

ГДЕ a.id_users` = '59 '

), как upload_by ИЗ t_files LEFT JOIN t_files_permission ON t_files_permission. id_files = t_files. file_id LEFT JOIN t_users ON t_users. id = t_files_permission. id_users WHERE t_files. company_id = '1' И t_files_permission. id_users = '59' AND is_deleted = 0

0

попробовать этот способ

SELECT `t_files`.*, `t_users`.`username`, 
(select CONCAT(b.first_name, " ", b.last_name) 
    from t_files as a 
    join t_users as b on b.id = a.user_id 
    where t.files.id=a.id) as upload_by 
FROM `t_files` as 
LEFT JOIN `t_files_permission` ON `t_files_permission`.`id_files` = `t_files`.`file_id` 
LEFT JOIN `t_users` ON `t_users`.`id` = `t_files_permission`.`id_users` 
WHERE `t_files`.`company_id` = '1' AND `t_files_permission`.`id_users` = '59' AND `is_deleted` =0 

Я думаю, вам не нужно суб запроса. Вы можете использовать соединение для решения проблемы.

Смежные вопросы