Toon posts:

[MYSQL] select table die niet voorkomen in andere table

Pagina: 1
Acties:

Verwijderd

Topicstarter
En titel voor deze vraag is moeilijk in een paar woorden, dus misschien een beetje moeilijk.
Dus hier uitleg.

Mijn tabelen:

TABLE countries
country_id
country_code
name

TABLE selected_countries
country_id

Nu staat er bijvoorbeeld in TABLE countries de volgende data:
1 NL Nederland
2 DE Duitsland
3 BE België
4 FR Frankrijk
5 GB Groot Brittanië

En als data in TABLE selected_countries:
1
4
5

Nu wil ik graag een query die uit TABLE countries de landen "selecteerd" die NIET staan in TABLE selected_countries.

Dus dat zou in dit geval zijn:
2 DE Duitsland
3 BE België

Ik heb al wat zoekwerk verricht in kom steeds uit op de JOIN functie in MYSQL. Maar hoe ik deze nou moet toepassen lukt me niet.
Kan iemand mij opweg helpen?

  • PaulZ
  • Registratie: Augustus 2004
  • Laatst online: 21-05-2024
't Kan vast slimmer, maar dit is één optie (even uit het blote hoofd):
SELECT country_id FROM countries WHERE country_id NOT IN (SELECT country_id FROM selected_countries) Hier maak je gebruik van een subquery, en dit kan soms langzamer zijn.

Tweede optie: JOIN (outer geloof ik maar weet ik niet zeker, richting selected_countries) op country_id WHERE selected_countries.country_id = null (exacte syntax voor null-waarde-vergelijking zelf uitzoeken).

Ben niet helemaal thuis in MySQL, maar hier moet je mee uit de voeten kunnen denk ik.

Vlinders moet je volgen, niet vangen...


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Optie 1 valt waarschijnlijk af aangezien MySQL pas vanaf versie 4.1 subqueries ondersteunt. Je tweede optie kan wel, al heb je de IS-operator nodig en niet de =. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • vinnux
  • Registratie: Maart 2001
  • Niet online
OUTER JOINS geven vast de oplossing ;)

Verwijderd

Topicstarter
tnx dudes, het is idd gelukt met een OUTER JOIN