在MySQL中汇总多个表

3

我有一个任务是制作一个包含数千条记录的其他表格的摘要表。该摘要表应包含:

  1. 不重复的“记录”列表;
  2. 包含该“记录”的表格数量
  3. 包含该“记录”的表格名称

例如:

Table_1
nameA
nameB
nameC

Table_2
nameB
nameC
nameD

Table_3
nameC
nameD
nameE

结果应该类似于这个样子。
Record_name  Number  Table_names
nameA        1       Table_1
nameB        2       Table_1, Table_2
nameC        3       Table_1, Table_2, Table_3
nameD        2       Table_2, Table_3
nameE        1       Table_3

也许这不是一件太复杂的事情,但由于我对 mysql 还比较新手,希望能从你们这里得到一些建议和帮助!


几千个?祝你好运! - Strawberry
1个回答

3
SELECT  col1 as `Record Number`, 
        COUNT(*) as `Number`, 
        GROUP_CONCAT(_name) as `table name`
FROM
(
    SELECT col1, 'table_1' as _name FROM table_1
    UNION ALL
    SELECT col1, 'table_2' as _name FROM table_2
    UNION ALL
    SELECT col1, 'table_3' as _name FROM table_3
) a
GROUP BY col1

1
接受这个作为你的答案。否则,这篇文章将会像“旧酒装新瓶”一样充斥着答案。 - Arpit
谢谢,很有帮助!之前不知道 SQLFiddle 这个网站 - 现在已经加入收藏夹了! - Iggy
哦,还有一件事:如果我想对N个表执行此操作怎么办?我可以循环遍历表列表或者使用正则表达式吗?谢谢。 - Iggy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接