[英]subquery returns more than 1 row?
subquery returns more than 1 row ? 子查询返回1行以上? sulution ?
溶化?
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 ) 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
SELECT t_files
.*, t_users
. 选择
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 username
,(SELECT CONCAT(b.first_name,“”,b.last_name)来自t_files作为一个联接t_users AS为b ON b.id = a.user_id
WHERE a.id_users` = '59'
a.id_users` ='59'
) as upload_by FROM t_files
LEFT JOIN t_files_permission
ON t_files_permission
. )作为upload_by FROM
t_files
左联接t_files_permission
ON t_files_permission
。 id_files
= t_files
. id_files
= t_files
。 file_id
LEFT JOIN t_users
ON t_users
. file_id
LEFT JOIN t_users
ON t_users
。 id
= t_files_permission
. id
= t_files_permission
。 id_users
WHERE t_files
. id_users
哪里t_files
。 company_id
= '1' AND t_files_permission
. company_id
='1'和t_files_permission
。 id_users
= '59' AND is_deleted
=0 id_users
=' is_deleted
= 0
try this way 尝试这种方式
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
I think you don't need sub query. 我认为您不需要子查询。 You can use join to resolve stuff.
您可以使用join来解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.