SELECT enquiry.*,
(SELECT comm
from comments
where enquiry.id = comments.enquiryId
order by time DESC
) as comm
FROM enquiry
where id='110' AND cmpId='3'
当我想通过删除限制来执行多行时,它说"子查询执行多行" 请帮忙
答案 0 :(得分:2)
您的子查询称为标量子查询,这意味着它必须有一列,最多一行。一种简单的方法是使用JOIN
:
SELECT e.*, c.comments
FROM enquiry e JOIN
comments c
ON e.id = c.enquiryId
where e.id = 110 AND e.cmpId = 3;
答案 1 :(得分:0)
或者您可以将子查询放在from子句中(如下所示),这与连接条件类似。
SELECT enquiry.*, comm.comm
FROM enquiry,
(SELECT comm
from comments
where enquiry.id = comments.enquiryId
order by time DESC
) as comm
where id='110' AND cmpId='3'
答案 2 :(得分:0)
作为询问与...之间的关系评论是1到多(如图所示) 您需要添加GROUP_CONCAT()函数以对所有注释进行分组,如下所示:
SELECT enquiry.*,
(SELECT GROUP_CONCAT(comm)
from comments
where enquiry.id = comments.enquiryId
order by time DESC
) as comm
FROM enquiry
where id='110' AND cmpId='3'