声明不 return 我需要的

Statement doesn't return what i need

我的 visual studio 项目

中的 SQL 查询有问题

我必须使用数据集不能做任何其他事情,我使用这个 SQL 查询:

SELECT Bezoekers.Naam, 
Bezoekers.Voornaam, 
Bezoekers.Gemeente, 
Bezoekers.Gsm, 
Bezoekers.Email
FROM  Bezoekers 
INNER JOIN FestivalBezoekers 
ON Bezoekers.BezoekerId = FestivalBezoekers.BezoekerId
WHERE (Bezoekers.BezoekerId <> (SELECT BezoekerId
        FROM  FestivalBezoekers AS FestivalBezoekers_1
        WHERE (FestivalId = @id)))

问题是当我将 <> 更改为 = 时它没有 return 任何东西它做了它必须做的事情并在我 select 正确时显示 1 bezoeker(访客) ID。问题是它必须显示每个访问者,但其 ID 在 table FestivalBezoekers 中的访问者除外。

Table内容:

Festival Bezoekers

FestivalId    BezoekersId

1             2

Bezoekers
BezoekersId Naam      Voornaam Adres           Pc        Gemeente   Gsm    Email

1           Bezoeker  Fred     Freeststraat 1  3700      Tongeren   0485/123456    fred.bezoeker@mail.com

2 Metaal Peter Grasstraat 5 3500 Hasselt 0499/987654 peter.metaal@mail.com

在这种情况下,将您的查询更改为使用 LEFT JOIN 而不是

SELECT Bezoekers.Naam, 
Bezoekers.Voornaam, 
Bezoekers.Gemeente, 
Bezoekers.Gsm, 
Bezoekers.Email 
FROM Bezoekers 
LEFT JOIN FestivalBezoekers 
ON Bezoekers.BezoekerId = FestivalBezoekers.BezoekerId 
WHERE FestivalBezoekers.BezoekerId IS NULL;

(或)像

一样使用WHERE NOT EXISTS
SELECT Naam, 
Voornaam, 
Gemeente, 
Gsm, 
Email 
FROM Bezoekers b 
WHERE NOT EXISTS ( SELECT 1 FROM FestivalBezoekers WHERE BezoekerId = b.BezoekerId);