2016-12-12 3 views
0

kann nicht verwendet werden Ich suche nach Einträgen, die nicht in der Praxis und Spieltabelle vorhanden sind, aber ich kann eine zweite nicht in Anweisung verwenden. Gibt es einen anderen Weg, dies zu tun?Mehrere nicht in Statements

select VenueID from Venue 
where VenueID not in (select VenueID from Practice) 
and not in (select VenueId from Game) 

Antwort

1

Sie müssen wiederholen Sie die NOT IN Anweisung, einschließlich der Spaltenname:

SELECT VenueID 
FROM Venue 
WHERE VenueID NOT IN (SELECT VenueID FROM Practice) AND 
     VenueID NOT IN (SELECT VenueId FROM Game) 
     ^^^ you omitted the second column name 

One alterna tativ zu verwenden NOT IN wäre, zwei linke Joins zu tun:

SELECT VenueID 
FROM Venue t1 
LEFT JOIN Practice t2 
    ON t1.VenueID = t2.VenueID 
LEFT JOIN Game t3 
    ON t1.VenueID = t3.VenueID 
WHERE t2.VenueID IS NULL AND 
     t3.VenueID IS NULL 
0

Sie verpassen die Spaltennamen in dem zweiten not in (jedes Kriterium ist getrennt und die Syntax ist < column> NICHT IN < Wert>):

select VenueID from Venue 
where VenueID not in (select VenueID from Practice) 
and VenueID not in (select VenueId from Game) 
-- ^^^^^^^