从多个表中选择数据

时间:2013-12-17 10:15:13

标签: vb.net visual-studio-2010 visual-studio ms-access

我使用access作为我的数据库,并且无法尝试让我的查询选择正确的数据。目前我的查询似乎返回表中的所有记录,当真正用于WHERE子句中的这个特定值时,它应该只返回1.

我们的想法是使用“请求框”'表基于WHERE子句中的值,并使用这些值从'框中提取数据。表。如果有人能指出我的新手错误,我将不胜感激。我想补充一点,我继承了这个数据库并且无法更改它。非常感谢

我的数据库设置如下。

请求框

请求否

CustRef

sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " &
                  "FROM [Request Boxes], Boxes WHERE [Request Boxes].[Request no] = '" & item & "'"

更新后的代码:

sql = "SELECT [Request Boxes].[Request no], [Request Boxes].Box, Boxes.Box, Boxes.CustRef " &
                  "FROM [Request Boxes] INNER JOIN Boxes ON [Request Boxes].Box = Boxes.Box " &
                  "WHERE ((([Request Boxes].[Request no]) = '" & item & "' )" &
                  "AND ([Request Boxes].[Customer] = '" & customer2 & "') AND (Boxes.Status = '" & status & "'))"

1 个答案:

答案 0 :(得分:1)

您将使用FROM条款加入这两个表...

FROM [Request Boxes], Boxes

这意味着您将获得所有Boxes行,这些行附加到您正在选择的Request Boxes行。要选择Boxes行匹配,请向ON添加FROM子句...

FROM [Request Boxes], Boxes ON [Request Boxes].[Box] = [Boxes].[Box]

这将确保只有匹配的Boxes行附加到[Request Boxes]行。