我的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)))
问题是,当我更改&lt;&gt;时,它不会返回任何内容to =它做了它必须做的事情,当我选择正确的id时显示1个bezoeker(访客)。问题是它必须显示每个访问者,除了其ID在表FestivalBezoekers中的访问者。
表格内容:
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
答案 0 :(得分:1)
在这种情况下,请将您的查询更改为使用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);