MS Access 从两个表中选择

Posted

技术标签:

【中文标题】MS Access 从两个表中选择【英文标题】:MS Access select from two tables 【发布时间】:2019-10-04 23:50:38 【问题描述】:

我有 2 个 MS ACCESS 表,想要构建一个返回 3 列的选择; table1.name table1.dept 以及基于 table1 位置列的表 2 中 3 列中的 1 列中的值。 Table1.position 只有 3 个可能的值,每个值决定要使用的 table2 列。

表1

部门名称

表2

部门 posval1 posval2 posval3

我的选择看起来像这个例子。

select a.name, a.dept, b.((if a.pos = "eng", b.posval1) OR (if a.pos = "research", b.posval2) OR (if a.pos = "dv1", b.posval3))
from table1 a, table2 b
where a.dept = b.dept

【问题讨论】:

【参考方案1】:

使用 JOIN 子句链接 dept 字段而不是 WHERE。使用嵌套的 IIf() 选择合适的 posval。

SELECT a.name, a.dept, 
    IIf(pos="eng", posval1, IIf(pos="research", posval2, IIf(pos="dv1", posval3, "None"))) AS Position
FROM table1 a INNER JOIN table2 b ON a.dept = b.dept;

或者使用 Switch() 函数。

SELECT a.name, a.dept, 
    Switch(pos="eng",posval1, pos="research",posval2, pos="dv1",posval3) AS Position
FROM table1 a INNER JOIN table2 b ON a.dept = b.dept;

【讨论】:

很高兴它解决了您的问题。如果你真的喜欢它,也可以投票。

以上是关于MS Access 从两个表中选择的主要内容,如果未能解决你的问题,请参考以下文章

使用联合从 MS Access 表中选择随机记录 [重复]

如何从 MS access 2007 中的特定表中选择索引

如何使用c#从两个以上的MS Access数据库表中检索数据

带有子查询的 MS ACCESS 查询

如何在 MS Access 2010 中组合多种查询类型?

MS Access 中的条件选择语句