GROUP_CONCAT子查询
问题描述:
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(里面的值),但仍是不工作了GROUP_CONCAT子查询
父查询返回像12,34,3,56 和我想在IN功能
这实际上并不是整个案件的使用,但我只是想弄清楚这一点,
答
不能使用的输出IN()的GROUP_CONCAT,因为它返回一个字符串。使用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;
+0
你能告诉我怎么样? – avien 2012-07-11 04:35:55
+1
+1,而在IN子查询中可能不需要DISTINCT。 – 2012-07-11 13:00:52
我删除了标签'oop','class'和'eval',因为它们似乎不适用。如果我错了,请解释。我加了'sql'。 – Smandoli 2012-07-11 03:46:28
组concat正在返回一个字符串。使用内部结果集IN() – Khaleel 2012-07-11 03:47:33
啊是的,对不起,我忘了改变它的方式感谢..;) – avien 2012-07-11 03:48:10