我不确定为什么这样表现。我需要根据一些标准从两个表中选择几个值,这些标准应该从我在下面尝试的查询中清楚。从两个表中选择给出比预期更多的行
query = @"SELECT n.borrower, a.sum, n.lender FROM Notification AS n, Acknowledgment AS a
WHERE [email protected] AND n.id IN (SELECT parent_id FROM Acknowledgment
WHERE [email protected] AND [email protected])";
这会返回比预期更多的行(12)。
我有两个表的通知和确认都有字段“总和”。当我尝试下面的查询时,按照预期给出正确的3行。
@"SELECT n.borrower, n.sum, n.lender FROM Notification AS n
WHERE [email protected] AND n.id IN (SELECT parent_id FROM Acknowledgment
WHERE [email protected] AND [email protected])";
现在我需要让我需要a.sum
而不是n.sum
扩展这个查询。但是当我尝试第一个查询时,它会给出更多的行,我的意思是WHERE
条件不起作用。我不知道,如果它与MS Access的怪癖或查询有问题。如果我的查询看起来很好,我很欣赏在访问中的替代实现'因为它根本不起作用! :)
我已阅读here不同的数据库实现以不同的方式选择。说不上来,如果它的东西具体的访问..
从Li0liQ建议之后,我尝试这样做:
@"SELECT n.borrower, a.sum, n.lender FROM Notification AS n
INNER JOIN Acknowledgment AS a ON a.parent_id = n.id AND [email protected] AND [email protected]
WHERE [email protected]"
但我现在得到“不支持JOIN表达”一个错误。
只是完美。接近我所想的东西! – nawfal 2012-01-12 18:17:56
不需要子查询。必须满足这个条件! – nawfal 2012-01-12 18:19:41
@nawfal,但应该可以通过将这些条件放入'WHERE'子句来获得相同的结果,这比子查询更有效。 – phoog 2012-01-12 18:21:46