正在尝试用1条语句查询2个Access表

本文关键字:查询 2个 Access 语句 1条 | 更新日期: 2023-09-27 18:24:21

我一直在做研究,无法找到使用一个查询从多个表中获取数据的方法。我想要实现的是从Access数据库中的一个表中获取信息,并使用该信息从同一数据库中的不同表中获取更多数据

这是我目前掌握的代码。。。

                string end = "ENDDATE";
                string qual = "CGA0113";
                string start = "START";
                ad.SelectCommand = new OleDbCommand("SELECT* FROM [AC_ECONOMIC] Where KEYWORD = '" + end + "'AND QUALIFIER = '" + qual + "' AND EXPRESSION LIKE 'SN%'", con);

我希望能够从一个名为AC_PROPERTY的单独表中获取数据,该表具有来自AC_ECONOMIC表的上述查询的相同SN。我一直在研究连接,相信这是一条路,但我不太确定语法,也不确定这是否可行。如有任何帮助,我们将不胜感激。

正在尝试用1条语句查询2个Access表

正确的做法是内部联接。您基本上需要构造一个语句,通过两个表的公共字段连接它们。类似这样的东西:

SELECT * FROM [AC_ECONOMIC] a
INNER JOIN [AC_PROPERTY] b
on [AC_ECONOMIC].SN=[AC_PROPERTY].SN   
Where KEYWORD = '" + end + "'AND QUALIFIER = '" + qual + "' AND EXPRESSION LIKE 'SN%'

上面的陈述只是一个例子。我不知道这两个表之间的公共列是否真的被称为"SN"。

更新:

正如@Geek所建议的那样,您也可以在语句中引用表后对其进行别名,这样可以避免每次都键入完整的表名。例如,上述语句也可以写成:

SELECT a.*, b.* FROM [AC_ECONOMIC] a
INNER JOIN [AC_PROPERTY] b
on a.SN=b.SN   
Where a.KEYWORD = '" + end + "'AND a.QUALIFIER = '" + qual + "' AND b.EXPRESSION LIKE 'SN%' 

请注意WHERE子句是如何使用"a"(AC_ECONOMIC)和b(AC_PROPERTY)中的列进行筛选的。