子查询中的group_concat的mysql查询未给出正确的结果

时间:2011-05-02 05:17:20

标签: mysql sql aggregate-functions

我有两张桌子:

  • 类别(inter_archi_cat表)及其与其他
  • 的关联
  • entities(inter_archi table)

我想只选择链接到任何实体的类别。

SELECT * 
  FROM inter_archi_cat 
 WHERE id IN (SELECT GROUP_CONCAT(DISTINCT sub_cat) as allcat 
                FROM inter_archi)

如果我单独运行子查询,我会给出正确的结果(apx 40条记录)。但在运行主查询时,它只给出了1条记录。

2 个答案:

答案 0 :(得分:0)

我做到了:

这里是更改查询:

SELECT distinct cat.id,cat.name
  FROM inter_archi_cat  as cat
  join   inter_archi as inter on (cat.id in (inter.sub_cat))

获得了想法

MySQL - How to use subquery into IN statement by value

答案 1 :(得分:0)

您不必使用IN和子查询。使用简单的内连接可以获得相同的结果:

SELECT ic.* FROM inter_archi_cat ic 
JOIN inter_archi i 
ON i.sub_cat = ic.id 
GROUP BY ic.id

会更快。