声明没有回报我需要的东西

时间:2016-01-25 18:35:33

标签: mysql visual-c++ visual-studio-2013 dataset

我的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

1 个答案:

答案 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);