用另一个表中的值替换id

Mug*_*anu 2 sql select

我有两张桌子:

Table Users

UserId     Name
1          John
2          Alice
3          Tom
4          Charles
Run Code Online (Sandbox Code Playgroud)

Table Clients

Id         Name1          Name2      Name3
1            1              3          4
2            2              1          3
Run Code Online (Sandbox Code Playgroud)

我想在哪里做一个SQL查询

Clients.Id = 1
Run Code Online (Sandbox Code Playgroud)

结果如下:


Id         Name1          Name2       Name3
1          John            Tom       Charles
Run Code Online (Sandbox Code Playgroud)

使用INNER JOIN我可以为客户端的每一列执行此操作,但不能为整个记录(所有三列)执行此操作.

Joh*_*Woo 5

你需要在桌子users上加入表格三次client.

SELECT  a.ID,
        b.name name1,
        c.name name2,
        d.name name3
FROM    clients a
        INNER JOIN users b
            ON a.name1 = b.userID
        INNER JOIN users c
            ON a.name2 = c.userID
        INNER JOIN users d
            ON a.name3 = d.userID
WHERE   a.ID = 1
Run Code Online (Sandbox Code Playgroud)

SQLFiddle演示