我一直在做研究,但找不到使用一个查询从多个表中获取数据的方法。我想要实现的是从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相同。我正在研究连接,并认为这是要走的路,但我不太确定语法或者是否可行。任何帮助将不胜感激。
答案 0 :(得分:1)
正确,一个内部联接将是要走的路。您基本上需要构造一个语句,通过它们的公共字段连接2个表。像这样:
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%'
以上陈述只是一个例子。我不知道2个表之间的公共列是否实际上称为“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)中的列进行过滤。