Avatar billede drgraa Nybegynder
29. oktober 2007 - 16:46 Der er 5 kommentarer

SQL-query

Hvordan laver jeg en SQL-query, der gør følgende:

Eks. tabel:
Fornavn  Efternavn
Anders  Andersen 
Andreas  Andersen 
Hans    Hansen   
Anders  Larsen   
Lars    Larsen   

Jeg vil have Efternavn=Andersen og Efternavn=Larsen som begge har samme fornavn.

Dvs. søgningen giver følgende:
Anders  Andersen
Anders  Larsen
Avatar billede arne_v Ekspert
29. oktober 2007 - 16:59 #1
SELECT *
FROM tabel
WHERE fornavn='Anders' AND (efternavn='Andersen' OR efternavn='Larsen')

maaske
Avatar billede drgraa Nybegynder
29. oktober 2007 - 19:25 #2
Det skulle gerne være, hvor alle fornavne var ens - ikke bare Anders...
Avatar billede arne_v Ekspert
29. oktober 2007 - 19:29 #3
saa proev:

SELECT t1.fornavn,t1.efternavn,t2.fornavn,t2.efternavn
FROM tabel t1,tabel t2
WHERE t1.fornavn=t2.fornavn AND t1.efternavn<>t2.efternavn
Avatar billede kjulius Novice
29. oktober 2007 - 23:16 #4
Mit forslag ville være noget i retning af:

SELECT Fornavn, Efternavn
FROM tabel n
WHERE EXISTS (SELECT Fornavn FROM tabel WHERE Efternavn IN ('Andersen', 'Larsen') AND Efternavn = n.Efternavn GROUP BY Fornavn HAVING COUNT(*) > 1)
ORDER BY Fornavn, Efternavn
Avatar billede kjulius Novice
29. oktober 2007 - 23:26 #5
Eller måske mere optimalt(?):

SELECT Fornavn, Efternavn
FROM tabel n
WHERE Efternavn IN ('Andersen', 'Larsen')
  AND EXISTS
  (
    SELECT Fornavn
    FROM tabel
    WHERE Efternavn = n.Efternavn
    GROUP BY Fornavn
    HAVING COUNT(*) > 1
  )
ORDER BY Fornavn, Efternavn
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
Computerworld tilbyder specialiserede kurser i database-management

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