0
select GROUP_CONCAT(DISTINCT tbl1.logid)  ,
(

    SELECT COUNT( DISTINCT tbl2.client_id ) 
    FROM tbl_client tbl2

    WHERE tbl2.con_id
    IN ( GROUP_CONCAT(DISTINCT tbl1.logid) ) 


) as PC2,

from tbl_table tbl1;

我尝试分配 GROUP_CONCAT(DISTINCT tbl1.logid) 的别名并将其放在 IN() 内的值中,但仍然无法解决

父查询返回类似 12,34,3,56 的内容,我想在 IN 函数中使用

这实际上不是全部情况,但我只是想弄清楚这一点,

4

1 回答 1

2

您不能将GROUP_CONCAT的输出用于 IN(),因为它返回一个字符串。将子查询的结果用于 IN()。

select GROUP_CONCAT(DISTINCT tbl1.logid)  ,
(

SELECT COUNT( DISTINCT tbl2.client_id ) 
FROM tbl_client tbl2

WHERE tbl2.con_id
IN ( SELECT logid from tbl_table ) 


) 

as PC2,

from tbl_table tbl1;
于 2012-07-11T03:58:21.337 回答