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张表的内连接的主要内容,如果未能解决你的问题,请参考以下文章