如何使用MS Access设计视图根据条件从两个表中查询这些值

时间:2016-10-12 09:20:47

标签: sql ms-access

我是Access查询和SQL语法的新手,并尝试构建以下内容:

给定两个表A和B,其中字段x(键),y,z对两个表都是通用的,而Bx是Ax的子集,我如何生成一个从Ax填充query.x的查询,来自By的query.y和来自Bz的query.z,除非Ax值对A是唯一的,在这种情况下,query.y和query.z应分别来自Ay和Az。

使用Design View条件我试过这个(转换为SQL):

SELECT A.x
FROM A LEFT JOIN B ON A.x = B.x
WHERE B.y = IIf( A.x Like 'T*', A.y, B.y ) 
      AND B.z = IIf( A.x Like 'T*', A.z, B.z )

我使用了Like 'T*',因为x的唯一A值以T开头,我认为这可能会捕获存在差异的情况。

1 个答案:

答案 0 :(得分:1)

不确定是否可以使用设计器重建以下查询:

SELECT A.x, B.y, B.z
  FROM A INNER JOIN B ON A.x = B.x
UNION
SELECT A.x, A.y, A.z
  FROM A WHERE x NOT IN ( SELECT x FROM B );