没有链接列的SQL INNER JOIN

时间:2016-08-16 16:28:11

标签: sql ms-access inner-join

我有一个UltraGrid显示客户信息。数据库的设置方式有2个表。 CustomersCustomer_Addresses。我需要能够显示Customers以及来自Town的{​​{1}}和Region的所有列,但我的印象是我需要Customer_Addresses表中的Town和Region列能够执行此操作吗?我之前从未使用Customer因此我不确定这是否属实,所以有人可以指点如何做到这一点,或者我是否需要匹配的列?

它甚至需要INNER JOIN,还是有其他方法可以做到这一点?

以下是两个表的设计视图 - 是否可以INNER JOIN显示Add4Add5所有Customer_Addresses

enter image description here

2 个答案:

答案 0 :(得分:1)

只要您有另一个键列就可以用来链接表(例如ID_Column),最好使用LEFT JOIN。

示例:

SELECT c.col1, ... , c.colN, a.town, a.region FROM Customers c
LEFT JOIN Customer_Addresses a ON a.ID_Column = c.ID_Column

为了阐明JOIN类型的工作原理,请看这张图: enter image description here

在我们的示例中,使用LEFT JOIN将从Customers表中获取所有信息,以及来自Customer_Addresses表的任何找到的匹配(在ID上)信息。

答案 1 :(得分:1)

首先,你需要在两个表中共同使用一些列,所有你需要做的就是:

CREATE TABLE all_things 
AS 
   SELECT * (or columns that you want to have in the new table) 
   FROM Costumers AS a1  
   INNER JOIN Customer_Addresses AS a2 ON a1.column_in_common = a2.column_in_common

关键是你想要什么样的联接。

如果你可以继续这个过程而没有表Costumers或表Customer_Addresses中的信息,那么你可能需要OUTER JOIN或其他类型的JOIN。