MS Access SQL - 从3个表中获取数据

时间:2013-11-21 23:05:53

标签: sql ms-access

在MS Access中,我有3个表格如下。

表1 tblOrders 包含以下字段。

fldOrdrID | fldCustID | fldProdID | fldOrdrDate
----------|-----------|-----------|------------

表2 tblCustomers 包含以下字段。

fldCustID | fldCustName | fldCustAddr
----------|-------------|------------

表3 tblProducts 包含以下字段。

fldProdID | fldProdName
----------|------------

我应如何在MS Access中编写SELECT语句,基本上从表1 tblOrders 中获取四列,但将fldCustID替换为fldCustName并替换{{1}与fldProdID?像下面的东西。

fldProdName

由于

1 个答案:

答案 0 :(得分:3)

您想了解JOIN。

基本上,连接将返回与表达式匹配的所有行。该表达式通常是主键和外键之间的相等。

在这种情况下:

SELECT tblOrders.fldOrdrID, tblCustomers.fldCustName, 
    tblProducts.fldProdName, tblOrders.fldOrdrDate
FROM (tblOrders INNER JOIN tblCustomers ON tblOrders.fldCustId = tblCustomers.fldCustId) INNER JOIN tblProducts ON fldProdID = tblOrders.fldProdId

INNER JOIN指定要加入的表和要加入的条件。 'INNER'限定符指定查询应仅在满足条件时返回行。有时您可能还希望返回等式的一侧没有相应行而另一侧没有相应行的行。那些将是左或右连接。

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html

一分钱一分钱。

您希望避免简单地枚举表,然后在WHERE子句中指定相等条件。它更冗长,也更不易阅读。

INNER JOIN ON vs WHERE clause

另外不要忘记在作业中引用我。