首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从1个表到多个列的联合查找

从1个表到多个列的联合查找
EN

Stack Overflow用户
提问于 2019-03-21 03:46:29
回答 3查看 108关注 0票数 1

如何将1表与另一表中的多列链接,而不使用多个联接查询?以下是我的设想:

我有带IDName的桌子

代码语言:javascript
运行
复制
User
+---------+------------+
|      Id |       Name |
+---------+------------+
|       1 |       John |
|       2 |       Mike |
|       3 |    Charles |
+---------+------------+

和包含多列的表Product,但只关注2列CreateByModifiedBy

代码语言:javascript
运行
复制
+------------+-----------+-------------+
| product_id | CreateBy  | ModifiedBy  |
+------------+-----------+-------------+
|       1    | 1         | 3           |
|       2    | 1         | 3           |
|       3    | 2         | 3           |
|       4    | 2         | 1           |
|       5    | 2         | 3           |
+------------+-----------+-------------+

对于普通的JOIN,我需要执行2次连接:

代码语言:javascript
运行
复制
SELECT p.Product_id,
    u1.Name AS CreateByName,
    u2.Name AS ModifiedByName
FROM Product p
JOIN USER user u1 ON p.CreateBy = u1.Id,
JOIN USER user u2 ON p.ModifiedBy = u2.Id

出来的结果

代码语言:javascript
运行
复制
+------------+---------------+-----------------+
| product_id | CreateByName  | ModifiedByName  |
+------------+---------------+-----------------+
|       1    | John          | Charles         |
|       2    | John          | Charles         |
|       3    | Mike          | Charles         |
|       4    | Mike          | John            |
|       5    | Mike          | Charles         |
+------------+---------------+-----------------+

如何避免2次JOIN

我使用的是MS-SQL,但对所有SQL查询开放,因为我对自己的学习非常好奇。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55273478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档