我正在try 合并两个表之间的列,并对它们进行合并.虽然我能够在特定于一个表的列上使用group_concat
,但也有一列需要从table1.role_id
和table2.role_id
中组合,并使用特定的分隔符连接结果.
我正在使用sqlite db.
SQL小提琴:link
Table1
name | role_id | dep_id |
---|---|---|
a | 1 | d1 |
a | 1 | d2 |
b | 2 | d3 |
b | 3 | d5 |
c | 3 | d4 |
Table2
name | role_id | ipv6 | ipv4 |
---|---|---|---|
a | 1 | ipv6_1 | ipv4_1 |
a | 2 | ipv6_2 | ipv4_1 |
b | 7 | ipv6_3 | ipv4_2 |
b | 7 | ipv6_7 | ipv4_8 |
e | 2 | ipv6_4 | ipv4_3 |
我提出的问题
select t1.name,
-- combine role_id column from both the tables and do group_concat on it??
group_concat(DISTINCT t1.dep_id),
group_concat(DISTINCT t2.ipv6),
group_concat(DISTINCT t2.ipv4)
from table1 t1
inner join table2 t2
on t1.name = t2.name
group by t1.name
Current query output
name | group_concat(DISTINCT t1.dep_id) | group_concat(DISTINCT t2.ipv6) | group_concat(DISTINCT t2.ipv4) |
---|---|---|---|
a | d1,d2 | ipv6_1,ipv6_2 | ipv4_1 |
b | d3,d5 | ipv6_3,ipv6_7 | ipv4_2,ipv4_8 |
预期结果
name | CONCAT_role_id | group_concat(DISTINCT t1.dep_id) | group_concat(DISTINCT t2.ipv6) | group_concat(DISTINCT t2.ipv4) |
---|---|---|---|---|
a | 1,2 | d1,d2 | ipv6_1,ipv6_2 | ipv4_1 |
b | 2,3,7 | d3,d5 | ipv6_3,ipv6_7 | ipv4_2,ipv4_8 |