道歉,如果这对某些人来说似乎很简单,我仍处于(非常)早期学习阶段!
基本上我有一个包含多个用户(Users_ID)的表数据库,每个用户都有一个相应的访问名称(NAME)。问题是,一些用户有多个访问名称,这意味着在拉取数据时,User_ID列中存在重复项。
我需要删除User列中的重复项并在NAME列中加入相应的访问名,因此它只占用1行而且没有数据丢失。
我正在使用的当前SQL查询是:
select Table1_user_id, Table2.name,
from Table1
inner join Table2
on Table1.role_id = Table2.role_id
这将返回的一个例子:
USER_ID | NAME
------- --------------
Tim Level_1 Access
John Level 2 Access
Tim Level 2 Access
Mark Level 3 Access
Tim Level 3 Access
理想情况下,我会删除Tim的重复项并显示如下:
USER_ID | NAME
------- ----------------------------------------------
Tim Level_1 Access, Level 2 Access, Level 3 Access
John Level 2 Access
Mark Level 3 Access
提前感谢您对此提出的任何帮助,如果以前有类似问题的话,也会感到抱歉!
答案 0 :(得分:0)
将GROUP_CONCAT与SEPARATOR一起使用:
SELECT Table1.user_id, GROUP_CONCAT(Table2.name SEPARATOR ',') AS Ename
FROM Table1
INNER JOIN Table2 ON Table1.role_id = Table2.role_id
GROUP BY Table1.user_id
答案 1 :(得分:0)
select Table1_user_id, LISTAGG(Table2.name,', ') WITHIN GROUP (ORDER BY Table2.name) as Name
from Table1
inner join Table2
on Table1.role_id = Table2.role_id