无法使子查询工作

Not able to get a subquery working

我有问题。问题是我无法使简单的查询正常工作。我正在使用 MS-Access。 基本上我必须制作一张发票 (Factuur) 来获得房地 (Borg)。我正在使用这个查询

SELECT  Factuur.FactuurNR,Prijzen.Borg
FROM Prijzen, Factuur
WHERE Klasse IN
(SELECT Autos.Klasse
FROM Autos, Factuur
WHERE Autos.AutoNR = Factuur.AutoNR);

但是通过该查询,我得到了所有 InvoiceNR,其中包含所有可能的前提。 截屏:

但是当我尝试只执行子查询时

SELECT Autos.Klasse
FROM Autos, Factuur
WHERE Autos.AutoNR = Factuur.AutoNR

它给了我正确的汽车 Class。

我唯一需要的是与正确发票匹配的场所。 前提是基于carclass。该场所位于 Prijzen table。 谢谢,

是的,问题出在子查询中,当您尝试单独执行它时,它会为您提供结果。但是,当您将它与主查询结合使用时,它将不起作用,因此在子查询中添加一个分组依据并给出答案。 例如:“SELECT Autos.Klasse 来自汽车,Factuur WHERE Autos.AutoNR = Factuur.AutoNR 分组依据 Prijzen.Borg";

使用JOIN。试试这个方法:

SELECT  Factuur.FactuurNR,Prijzen.Borg
FROM ((Prijzen 
     INNER JOIN Autos ON Autos.Klasse = Prijzen.Klasse)
     INNER JOIN Factuur ON Factuur.AutoNR = Autos.AutoNR)
GROUP BY Factuur.FactuurNR,Prijzen.Borg;
(SELECT Autos.Klasse
FROM Autos, Factuur
WHERE Autos.AutoNR = Factuur.AutoNR);

Returns 标量(奇异)值。

因此,当您执行 Klasse = (SELECT ...) 时。相当于写Klasse = true,或者Klasse = 3,或者Klasse = null。