sql访问4张表的内连接

Posted

技术标签:

【中文标题】sql访问4张表的内连接【英文标题】:sql access inner join of 4 tables 【发布时间】:2012-11-11 20:40:53 【问题描述】:

我是 sql 新手,我正在尝试将 4 个表连接在一起,但无法掌握它的窍门。 我正在尝试使用内部连接来执行此操作,但我总是在访问时遇到语法错误。

SELECT * 
from kdst,aufpos 
inner join( artst inner join vert on kdst.vertreter = vert.vertnr)
on aufpos.artnr = artst.artnr;

这是我的代码,但它不起作用。我不知道该怎么办了,希望有人能帮助我。

【问题讨论】:

有什么原因不能使用 MS Access 查询设计窗口来构建这个查询? 我不知道。但我应该在 sql 中执行此操作。 你有一个显式和隐式内部连接的奇怪组合。什么条件将aufpos 连接到其他表?我看到了 artst 如何加入 aufpos,但没有看到将其链接回 kdst, vert 的条件。 查询设计窗口创建 SQL。构建查询然后切换到 sql 视图。 如果可以,请发布您的表架构。 【参考方案1】:

使用查询设计窗口构建

然后切换到sql视图

【讨论】:

谢谢!您是否有关于如何使用它的教程或指南? 您可以搜索查询设计窗口,例如techrepublic.com/article/…。您可以使用 F1(帮助)键,也可以尝试查询设计向导。【参考方案2】:
Select * 
From table1 t1
Inner join table2 t2 on t1.id = t2.fkid
Inner join table3 t3 on t1.id = t3.fkid
...

如果您想将多个表连接到同一个父表 (table1)。 Fkid 是引用父表主键的外键字段的列。

【讨论】:

哦,我会非常小心使用 select *。最好只从每个表中选择您需要的字段(例如 t2.foo、t3.bar)。 @Remou:当您的答案显示时,为什么它不起作用? 我的插图显示了两个表,一旦你超过两个表,你的连接需要括号。 Access 对此非常挑剔,这就是为什么对于 Access 新手来说几乎总是最好使用查询设计窗口。 哎呀没有抓住 Access 部分。我已经有一段时间没有接触过了。不确定我是否会注意到括号问题。

以上是关于sql访问4张表的内连接的主要内容,如果未能解决你的问题,请参考以下文章

sql查询:使用内连接查询两张表的时候,如果左边表的一条记录对应了右边表的两条记录,结果显示排列问题

MySQL 关联查询 内连接

MySQL数据库操作联表查询事务

派生表的内连接

MySql表的内连和外连

mysql中3个表的内连接