【发布时间】:2017-06-15 03:40:14
【问题描述】:
我有 4 个表,其中一列在所有表中都很常见。有没有一种方法可以创建一个视图,在该视图中我可以按同一列连接所有表,而我只能看到一次公共列。
假设我有 table1
Cust ID | Order ID | Product_Name
表2
Cust_ID | Cust_Name | Cust_Address
表3
Cust_ID | Cust_Acc | Acc_Type
表4
Cust_ID | Contact_Phone | Cust_Total_Ord
这是我用来连接表格的代码;
SELECT *
FROM table1
LEFT JOIN table2 ON table1.Cust_ID = table2.Cust_ID
LEFT JOIN table3 ON table2.Cust_ID = table3.Cust_ID
LEFT JOIN table4 ON table3.Cust_ID = table4.Cust_ID
我得到所有表加入,我从每个表中看到Cust_ID,如下所示;
Cust ID| Order ID|Product_Name| Cust_ID| Cust_Name|Cust_Address| Cust_ID| Cust_Acc| Acc_Type|Cust_ID|Contact_Phone|Cust_Total_Ord
有没有办法删除重复的Cust_ID 列,还是我需要在SELECT 中写下每个列名?我总共有 50 多列,所以很难写完。
对不起,如果这是一个非常愚蠢的问题,我已经检查了以前的类似问题但无法弄清楚并感谢您的帮助。
【问题讨论】:
-
了解 LEFT JOIN ON 返回的内容:INNER JOIN ON rows UNION ALL 不匹配的左表行,由 NULL 扩展。作为 OUTER JOIN 的一部分,始终知道您想要什么 INNER JOIN。
标签: sql sql-server join