[英]MS Access SQL - Fetch data from 3 tables
在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
和替换fldProdID
与fldProdName
? 如下所示。
fldOrdrID | fldCustName | fldProdName | fldOrdrDate
----------|-------------|-------------|------------
谢谢
您想了解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”限定符指定查询仅在满足条件时才返回行。 有时,您可能希望返回方程式的一侧没有对应行而另一侧却没有对应行的行。 这些将是LEFT或RIGHT联接。
http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html
一分钱一镑。
您要避免简单地枚举表,然后在WHERE子句中指定相等条件。 它比较冗长,可读性也较差。
另外,别忘了在作业中引用我。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.