Avatar billede strandfelt Nybegynder
01. marts 2009 - 15:05 Der er 6 kommentarer og
2 løsninger

Inner Join sammen med Select Distinct

Hej Ekspeter.

Dette burde være simpelt, men kan bare ikke finde løsningen.

Jeg er igang med at lave en samling af billeder af trøjer for cykelhold.

Trøjer ligger i tabellen "fusion_shirtdb_shirts".
Den har kolonnerne: shirt_id (smallint) og shirt_team (smallint).

De skal joines med tabellen "fusion_shirtdb_teams", hvor jeg har navne på cykelhold.
Den har kolonnerne: team_id (smallint) og team_name (varchar(255))

De skal joines på fusion_shirtdb_shirts.shirt_team = fusion_shirtdb_teams.team_id.

Jeg har forsøgt mig med følgende query, men uden held:
SELECT DISTINCT `shirt_team`
FROM `fusion_shirtdb_shirts` AS `shirts`
LEFT JOIN `fusion_shirtdb_teams` AS `teams` ON `shirts`.`shirt_team`=`teams`.`team_id`

Håber I kan hjælpe! :-)
Avatar billede strandfelt Nybegynder
01. marts 2009 - 15:07 #1
Hov, har vidst rodet lidt i Inner Join / Left Join.

Men i dette tilfælde er det vil ligegyldigt, hvilken JOIN man bruger?
Avatar billede arne_v Ekspert
01. marts 2009 - 16:40 #2
Hvis du uddyber "uden held" lidt, så vil det være nemmere for os at hjælpe dig.
Avatar billede strandfelt Nybegynder
01. marts 2009 - 17:00 #3
Uden held = Uden det ønskede resultat.

Den query jeg har skrevet i første indlæg viser det samme, som hvis jeg havde undladet JOIN helt. :-)
Avatar billede arne_v Ekspert
01. marts 2009 - 18:07 #4
Du udskriver kun et felt og med DISTINCT kan det jo meget nemt give samme resultat med og uden join.

Hvad vil du have ud ?
Avatar billede strandfelt Nybegynder
01. marts 2009 - 18:12 #5
Jeg vil have alle 4 kolonner, som jeg har nævnt. :)

Tror jeg er ved at forstå, hvor fejlen ligger nu.
Avatar billede strandfelt Nybegynder
01. marts 2009 - 18:17 #6
Arh, det var jeg for hurtig.

Jeg vil have vist fusion_shirtdb_shirts.shirt_team som DISTINCT. Den skal så joines med fusion_shirtdb_teams på team_id.
På den måde kan jeg få vist Holdnavne + Trøje-ID
Avatar billede strandfelt Nybegynder
01. marts 2009 - 18:21 #7
Så, nu fandt jeg den magiske query:

SELECT DISTINCT shirt_team, team_id, team_name
FROM `fusion_shirtdb_shirts` AS `shirts`
INNER JOIN `fusion_shirtdb_teams` AS `teams` ON `shirts`.`shirt_team`=`teams`.`team_id`

Tak for hjælpen, arne_v! Smid et svar.
Avatar billede arne_v Ekspert
01. marts 2009 - 18:30 #8
OK
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