不带链接列的SQL内部联接

不带链接列的SQL内部联接,sql,ms-access,inner-join,Sql,Ms Access,Inner Join,我有一个超级网格显示客户信息。按照数据库的设置方式,有两个表客户和客户地址。我需要能够显示Customers中的所有列,以及Town和Region中的Customer\u Addresses,但我的印象是,我需要Customer表中的Town和Region列才能做到这一点?我以前从未使用过内部联接,所以我不确定这是不是真的,所以有人能给我指点怎么做,或者我是否需要匹配的列吗 它甚至需要一个内部联接,或者有其他方法可以做到这一点吗 下面是这两个表的设计视图-是否可以显示来自客户地址的Add4和Ad

我有一个超级网格显示客户信息。按照数据库的设置方式,有两个表<代码>客户和
客户地址
。我需要能够显示
Customers
中的所有列,以及
Town
Region
中的
Customer\u Addresses
,但我的印象是,我需要
Customer
表中的Town和Region列才能做到这一点?我以前从未使用过
内部联接
,所以我不确定这是不是真的,所以有人能给我指点怎么做,或者我是否需要匹配的列吗

它甚至需要一个
内部联接
,或者有其他方法可以做到这一点吗

下面是这两个表的设计视图-是否可以显示来自
客户地址的
Add4
Add5
,以及所有
客户的


只要您有另一个键列可以用来链接表(例如ID\u列),最好使用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
为了阐明联接类型的工作原理,请查看以下图片:


在我们的例子中,使用左联接将从Customers表中获取所有信息,以及从Customer\u Addresses表中找到的匹配信息。

首先,您需要在两个表中找到一些共同的列,您需要做的是:

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
关键是你想要什么样的连接


如果您可以在表customers或表Customer\u Address中没有信息的情况下继续此过程,则可能需要外部联接或其他类型的联接。

您可以详细说明问题并共享示例输入/输出吗?您可以发布Customer和Customer\u Address的表架构。可能有一个AddressId或CustomerId将两个表关联在一起,以便在内部联接中使用,以便您可以一起查询表。我不确定我是否理解您关于Town and Region在客户身上的评论,但这似乎是一个错误的印象如果您以前从未使用过内部连接,那么您的sql知识非常低。学习一些基础知识是一项很好的时间和精力投资。我听说过这本书的好东西,十分钟内自学SQL。@Matt嗨,这两个表的设计视图都在上面,如果我理解正确的话-
SELECT(c.all columns),{a.Town],[a.Region]FROM[Customers]c LEFT JOIN[Customer\u Addresses]a ON a.Cust\u code=c.Customer\u code
?@joe看起来很完美(没有
{
typo)…只要
Cust\u code
Customer\u code
在它们的表中是相等和唯一的,我就用这段代码尝试了,它给了我一个错误“CREATE TABLE query中的错误”
sql=“CREATE TABLE Customer\u List As SELECT{Customers.Customer\u code},{Customers.Customer\u Name},{Customers.Telephone},{Customers.Email},{Customers.salesRep}来自a1左侧的客户,加入a1上a2的客户\地址。客户\代码=a2。客户\代码“