Toon posts:

[SQL]Complement selecteren

Pagina: 1
Acties:

Verwijderd

Topicstarter
Dit is waarschijnlijk een heel basic vraagje maar heb geen idee op welke term ik moet zoeken om iets te vinden.

Het zit dus als volgt:

Ik heb een tabel Groepen.
Hierin staan allemaal muziekgroepen, en ze hebben allemaal een uniek groep_id.

Ik heb ook een tabel Programma.
Hierin staat het programma van een festival en een van de kolommen van die tabel bevat de groep_id's.

Nu wil ik een SQL-statement vinden waarmee ik alle groepen uit Groepen kan vinden die niet in Programma staan. (dus alle groepen die nog geprogrammeerd moeten/kunnen worden)

Dit is in mijn ogen het tegengestelde van een join, maar ik weet niet hoe dit heet. Door gewoon '!=' te gebruiken kom ik nergens (door logische redenen wel) en verder weet ik niet hoe ik dat best aanpak. Iemand een trefwoord of zo om me op weg te zetten :? Alvast mijn dank _/-\o_

  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Wat voor database gebruik je?

Who is John Galt?


  • whoami
  • Registratie: December 2000
  • Laatst online: 16:25
Als je geen MySQL gebruikt , dan kan je sub-queries gebruiken.

code:
1
2
3
SELECT *
FROM tabel
WHERE id NOT IN ( SELECT id .... )

https://fgheysels.github.io/


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
code:
1
2
3
4
SELECT Groepen.*
FROM Groepen
LEFT OUTER JOIN Programma ON Groepen.Groep_id = Programma.Groep_id
WHERE Programma.Groep_id IS NULL

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Zerveza
  • Registratie: Maart 2001
  • Laatst online: 17-12-2021

Zerveza

DoS porfavor

volgende sql statement zou moeten werken:
code:
1
2
3
4
5
SELECT *
FROM groepen
WHERE groep_id NOT IN
       ( SELECT groep_id
         FROM programma)

[ Voor 5% gewijzigd door Zerveza op 06-05-2004 13:33 ]


Verwijderd

Topicstarter
Wow, dit ging ongelooflijk snel :*)
Net de onderste methode gebruikt en werkt perfect. Zijn er voordelen qua snelheid tussen de twee methodes die hier boven staan?
Alleszins al van harte bedankt, kan ik wat verder werken.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Verwijderd schreef op 06 mei 2004 @ 13:27:
Wow, dit ging ongelooflijk snel :*)
Zijn er voordelen qua snelheid tussen de twee methodes die hier boven staan?
Bij de meeste databases kun je het query executie plan opvragen. Je kunt dan zien welke query efficienter wordt uitgevoerd. Bij SQL Server kun je dit via Query Analyzer doen, by MySQL met het EXPLAIN statement. Kijk even in de documentatie voor de methode voor jou db.

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1