如何通过单个 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 个表?的主要内容,如果未能解决你的问题,请参考以下文章