在SQL视图中将id替换为字符串

在SQL视图中将id替换为字符串,sql,view,replace,Sql,View,Replace,我有两张桌子 groupid membership_list managerid ------------------------------------- 0 /0//1//2/ 2 1 /2/ 2 userid username ------------------ 0 ben 1 tom 2 dan 我想向例如用户“ben”显示一个表,这是他们所属组

我有两张桌子

groupid   membership_list   managerid
-------------------------------------
0         /0//1//2/         2
1         /2/               2

userid    username
------------------
0         ben
1         tom
2         dan
我想向例如用户“ben”显示一个表,这是他们所属组的列表,如下所示

groupid   membership_list   managername
---------------------------------------
0         /0//1//2/         dan
。。因此,基本上用用户名替换“manager_id”。我一直在尝试这个方法,但我无法解决这个问题-我的SQL技能显然有点欠缺-我该怎么做

SELECT groupid, membership_list, managerid FROM blah WHERE membership_list LIKE '%/?/%'
。。。就我所知

SELECT t1.groupid, t1.membership_list, t2.username
FROM table1 t1
INNER JOIN table2 t2 ON t1.managerid = t2.userid

应该这样做。或者我在这里遗漏了什么?

从表1 A、表2 B中选择A.groupid、A.membership\u list、B.managername,其中A.managerid=B.userid和membership\u list类似“%/?/”

您需要将membership\u list列拆分到一个新表中:

changed table: Groups
groupid
managerid

table users
userid
username

new table: UserGroups
groupid   
userid  
然后,您可以执行以下操作:

SELECT
    * 
    FROM Users                 u
        INNER JOIN UserGroups ug On u.userid=ug.userid
        INNER JOIN Groups      g ON ug.groupid=g.groupid
    WHERE u.Name='Ben'
找到本的所有团队


如果不想修改表,则需要一个split函数,将成员列表中的多个值转换为行。您没有提到您正在处理的实际数据库,拆分函数取决于您是否了解该数据库。

我认为这不起作用。加入需要在成员列表的拆分中,您只是显示经理信息,而不是用户的成员信息。在加入时,我有一些奇怪的心理障碍,谢谢marc_s指出了明显的问题!:)当用户ID为2、22、222等时会发生什么?你的同类会发现错误的匹配MscGyVer5可能是从我问题中的select语句中得到的。它用于在视图中使用,以便在使用之前将“?”替换为值。