如何通过单个 sql 查询连接 3 个表?

Posted

技术标签:

【中文标题】如何通过单个 sql 查询连接 3 个表?【英文标题】:How to join 3 tables by a single sql query? 【发布时间】:2013-10-24 04:03:35 【问题描述】:

我有 3 张桌子。

Table1: Group_Code, Group_Name,companyID;(PK: Group_Code)
Table2: PartyID,GroupID,companyID;(FK: GroupID, PK:PartyID)
Table3: VendorID, companyID;(FK:VendorID)

我想从 Table1 中为 Table3 的所有 VendorID 获取 Group_Name。我该怎么做?

在这里我写了一个代码。但它显示"Syntex error in FROM clause."我的数据库在ms访问中。

select Group_Name from Table1 join Table2 on Table1.Group_Code= Table2.GroupID
join Table3 on Table2.PartyID=Table3.VendorID

【问题讨论】:

Table1 .Group_Code 为什么是空格? 对不起。这个空格是为了输入错误。我编辑问题。仍然显示相同的错误 && 不是语法,是语法错误 【参考方案1】:
select Group_Name from Table1 
join Table2 on Table1.Group_Code= Table2.GroupID 
join Table3 on Table2.Party_Id=Table3.VendorID

Table2.Party_Id 应该是 Table2.PartyID

【讨论】:

【参考方案2】:

试试这个!!!

SELECT table1.group_name FROM (table1
     INNER JOIN ON table1.group_code=table2.groupid)
        INNER JOIN table3 ON table2.partyid=table3.vendorid

    GROUP BY    table1.group_name

【讨论】:

【参考方案3】:
SELECT table1.group_name FROM table1 join table2 
                   ON table1.group_code=table2.groupid
                       join table3 ON table2.partyid=table3.vendorid

error becoz you didnt take the group name DB instance ?

【讨论】:

:: 同样的错误。 FROM 子句中的语法错误。我在 MS ACCESS 中的数据库不在 Sql 服务器中【参考方案4】:

你可以这样做:

select Table1.Group_Name, Table3.VendorID from Table1 join Table2 on Table1.Group_Code= Table2.GroupID join Table3 on Table2.PartyID =Table3.VendorID

如果您的数据已以适当的关系存储。查询应该让您继续前进。 :)

【讨论】:

:: 我建立了适当的关系。但它显示“FROM 子句中的语法错误”。我的数据库正在访问中【参考方案5】:

使用此代码提问,

Select Table1.Group_Name  from ((Table1
left join Table2 on Table1.Group_Code=Table2.GroupID)
left join Table3 on Table2.PartyID=Table3.VendorID)

【讨论】:

以上是关于如何通过单个 sql 查询连接 3 个表?的主要内容,如果未能解决你的问题,请参考以下文章

SQL怎么连接查询2个表?

SQL 中的连接查询

SQL怎么连接查询2个表?

3 个表和一个子查询的 SQL 连接问题

T-SQL 选择连接 3 个表

如何从1个表中选择许多行并将其插入另一个表中特定行的特定JSONB字段中?但是在单个原始SQL查询中