roomMedlem sedan mars 2001270 inlägg Hej. Jag skulle behöva hjälp med en QUERY för följande.
Jag har två tabeller:
foretag:
ID | foretag | lan
1 | foretag1 | VARMLAND
2 | foretag2 | VARMLAND, DALARNA
3 | foretag3 | DALARNA, OREBRO
... osv
angransande:
mast | angransande
VARMLAND | DALARNA, OREBRO, VAST, SKARABORG
DALARNA | OSTERSUND, HALSINGLAND, VARMLAND,
... osv
Jag får av klienten ett klick på t ex VARMLAND och då vill jag plocka ut alla Företag som har VARMLAND som Län SAMT alla företag som har DALARNA, OREBRO, VAST eller SKARABORG som Län.
Någon som vet hur jag skall formulera denna query?
Tacksam för svar.
adde2Medlem sedan maj 2000144 inlägg Du ska inte fundera på att splitta upp tabellerna så att du endast har ett län per rad?
Blir väldigt mycket enklare då.
Ex:
Företag:
Namn län
----------------
Företag1 | län1
Företag1 | län2
Företag2 | län1
Angränsande län
Län Granne
--------------
Län1 | Län2
Län1 | Län3
Län2 | Län1
Län2 | Län4
select F.* from län L
inner join Företag f on L.Län = f.län
where L.Län = 'Skaraborg'
union
select F.* from Län L
inner join Företag F on L.Granne = F.Län
where L.Län = 'Skaraborg'
Ännu snyggare är så klart att dela upp det i 3-4 tabeller för att minska redundans och uttrycka m-n relationer så som man fick lära sig i skolan :-)
Beror lite på hur dina tabeller ser ut (vilket som är lämpligast)
@ndersMedlem sedan juni 200032 969 inlägg
adde2 skrev:
Du ska inte fundera på att splitta upp tabellerna så att du endast har ett län per rad?
Jo, det ska han. Man får inte spara flera värden i samma fält.