Avatar billede thums Praktikant
09. februar 2004 - 23:27 Der er 5 kommentarer og
1 løsning

SQL sætning

To tabeller: Land og Kort

Land indeholder: landID, navn

Kort indeholder: koordinat, landID

Jeg vil gerne have en SQL-sætning som vælger alle de lande som IKKE er repræsenteret i Kort-tabellen.

PS: kører MySQL-server
Avatar billede thums Praktikant
09. februar 2004 - 23:32 #1
PPS: Det skal gøres uden ændringer på strukturen i tabellerne.... Det andet ville være for let.... dog også yderst grimt kodning
Avatar billede eagleeye Praktikant
09. februar 2004 - 23:44 #2
hvilken version har du?

Du kan evt prøve:

SELECT Land.* FROM Land LEFT JOIN Kort ON Land.landID=Kort.landID WHERE Kort.landID IS NULL
Avatar billede tzag_dk Nybegynder
09. februar 2004 - 23:49 #3
wow... kan du ikke uddybe hvad du gør i den sql sætning?

// Rene
Avatar billede thums Praktikant
09. februar 2004 - 23:54 #4
Af hvad jeg kan se laver han en join på skidtet og tjekker om værdien af et givet left er null.... hvis det er returnere den det sammen med de andre der har en null værdi....

Tjekker det ud i morgen EagleEye..... du har dine point inden 11:00 i morgen hvis at det virker efter hensigten :)
Avatar billede eagleeye Praktikant
09. februar 2004 - 23:58 #5
Jo, den JOIN'er de to tabeller Land og Kort hvor Land.landID=Kort.landID
Når man bruger LEFT JOIN skulle den gerne tager alle poster fra land og de poster i kort hvor linket passer.
WHERE Kort.landID IS NULL  sortere så alle dem fra hvor landID finde i Kort tabellen.

Land:
landid, navn
1, DK
2, UK
3, US
Kort:
landID
2
3

Efter Join giver det:
land.id, land.navn, kort.landid
  1        DK          null
  2        UK          2
  3        US          3

Efter WHERE delen er udført har man:
  1        DK          null


Alternativt skal du lave den sådan her, men det kræver version >= 4.1:
SELECT * FROM Land WHERE landID NOT IN (SELECT landID FROM Kort)

Se mere her: http://www.mysql.com/doc/en/Subqueries.html
Avatar billede thums Praktikant
10. februar 2004 - 09:03 #6
takker for hjælpen eagleeye... det virker upåklageligt
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester