FAQ |
Kalender |
|
![]() |
#1 | |||
|
||||
Har WN som tidsfördriv
|
Hej,
Jag har ett problem som kräver lite mer än vad mina Mysql-kunskaper tillåter. Jag har två tabeller: Rutter och Destinationer. Rutter: RuttFran RuttTill Destinationer: DestinationID DestinationLand Där RuttFran samt RuttTill matchas av DestinationID. Exempelutdrag: Rutter Stockholm, Borås Stockholm, Göteborg Jönköping, Köpenhamn Berlin, Athen DestinationID, Stockholm, Sverige Berlin, Tyskland Athen, Grekland Nu vill jag göra en utläsning som läser ut alla distinkta landkopplingar som finns, dvs: Sverige - Sverige Sverige - Danmark Tyskland - Grekland och alltså inte alla fyra: Sverige - Sverige Sverige - Sverige Sverige - Danmark Tyskland - Grekland Det är alltså ett tudelat problem: #1. Hämta landsnamn för respektive Rutt-destination. #2. Isolera alla unika landskopplingar. Går det att göra med mysql bara eller måste jag gå via php? Vad ska jag googla efter isf? Tack på förhand! |
|||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
En lösning:
Kod:
SELECT DISTINCT(CONCAT(FranDest.Land, TillDest.Land)) FROM Rutter LEFT JOIN Destinationer AS TillDest ON TillDest.ID = Rutter.RuttTill LEFT JOIN Destinationer AS FranDest ON FranDest.ID = Rutter.RuttFran Senast redigerad av MMC den 2011-01-16 klockan 17:11 Anledning: bättre läsbarhet |
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Klarade millennium-buggen
|
Det skulle vara fullkomligt vansinnigt att denomalisera databasen för ett sånt här problem, det strider mot alla grundläggande metoder att jobba med databaser.
Det skulle vara helt fel sätt att angripa problemet och att prestandaoptimera något som inte behöver prestandaoptimeras. Se till att ha vettiga index så går en sån fråga blixtsnabbt. |
||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Har WN som tidsfördriv
|
Ett par timmar senare lyckades jag lösa det på ett förmodligen alldeles för komplicerat sätt med temporary tables osv. Tack för all hjälp!
|
|||
![]() |
![]() |
Svara |
|
|