在mysql中,我有三个表:
A:
-----------------
|g_id | txt |
|------|--------|
| 1 | cat |
| 3 | dog |
和
B:
--------------------------
|g_id | txt | txt2 |
|------|---------|--------
| 1 | hat | chat |
| 3 | that | NULL |
| 3 | that | NULL |
和
C:
------------------
|g_id | txt |
|------|---------|
| 1 | hat |
| 1 | mat |
| 3 | that |
我的目标是汇总表a、b和c中每一行的txt列,按g\ id分组。。。
因此,在我的查询之后,预期结果将是:
----------------
|g_id | size |
|------|-------|
| 1 | 16 |
| 3 | 15 |
我的查询失败:
SELECT
g_id,
SUM(length(txt)) + SUM(length(txt2) as size
FROM ((SELECT a.g_id, a.txt FROM a) UNION ALL
(SELECT b.g_id, b.txt, b.txt2 FROM b) UNION ALL
(SELECT c.g_id, c.txt FROM c)
) abc
GROUP BY g_id;
错误:使用的select语句的列数不同
1条答案
按热度按时间ttp71kqs1#
使用
union all
而不是join
: