子查询中的group_concat

时间:2012-07-11 03:44:12

标签: php mysql sql

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函数中使用

这实际上不是整个案例,但我只是想弄明白,

1 个答案:

答案 0 :(得分: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;