webForumDet fria alternativet
Logga in / Bli medlem

join sökning

Databaser & SQL

8 svar · 268 visningar · startad av elvelind

Medlem sedan juli 2002167 inlägg
Trådstart#1

har två tabeller. dels fordon och dels parker.

fordon ser ut : fordonsnamn | företagsid | parknamn

parker: parknamn | företagsid | ort

parker.parknamn kan vara dubbletter och parker.företagsid likaså. dock är de två tillsammans unika. dvs. varje företagsid kan inte ha mer än ett likadant parknamn

det jag vill göra just nu är att söka fram ett fordon med som ligger på en viss ort.

säg till om ni behöver mer förklaringar.

Medlem sedan dec. 200012 464 inlägg
#2
select fordon.* from fordon inner join parker 
on (fordon.företagsid = parker.företagsid 
and fordon.parknamn = parker.parknamn)
where ort = 'Ystad'
Medlem sedan juli 2002167 inlägg
#3

försökte något liknande först.. men det blev problem när jag skulle ha flera where satser.

vill att den dessutom ska söka efter where fordon.namn='namn' AND where fordon.id='id' alla where kraven måste uppfyllas. kanske bara jag som flummar och inte får det rätt.

Medlem sedan dec. 200012 464 inlägg
#4
select fordon.* from fordon inner join parker 
on (fordon.företagsid = parker.företagsid 
and fordon.parknamn = parker.parknamn)
where ort = 'Ystad'
and fordonsnamn = 'pluttan'

t.ex.

(Vilka kolumnnamn är det som gäller?)

Medlem sedan juli 2002167 inlägg
#5

sql ="SELECT fordon.namn, fordon.park, fordon.Regnr, fordon.biltyp, fordon.id, fordon.raknare, park.id, park.namn, park.lan FROM fordon INNER JOIN park ON (fordon.id = park.id and fordon.park = park.namn) WHERE (fordon.namn LIKE "& na & ") AND (fordon.Regnr LIKE "& re & ") AND (fordon.biltyp LIKE "& fo1 & " OR fordon.biltyp LIKE "& fo2 & " OR fordon.biltyp LIKE "& fo3 & " ) ORDER BY '"& Request.form("sortera") &"'"& Request.form("ordning") &" "

fungerar ej.. den vill inte välja ut några poster alls.. däremot om man tar bort join delen så väljs alla så som det ska

Medlem sedan dec. 200012 464 inlägg
#6

Varför har du


ON (fordon.id = park.id and fordon.park = park.namn)

borde det inte räcka med

ON (fordon.park = park.namn)

Ett annat fel är att du har ' kring värdet i order by

Bör vara

ORDER BY  " & Request.form("sortera") & " " & Request.form("ordning")

Varför använder du like och inte =?

Medlem sedan juli 2002167 inlägg
#7

LarsG skrev:

Varför har du


ON (fordon.id = park.id and fordon.park = park.namn)

borde det inte räcka med

ON (fordon.park = park.namn)

därför att det kan finnas två parker med samma namn. dock kan bara varje företag (id) ha en park med ett namn

__________
Ett annat fel är att du har ' kring värdet i order by

Bör vara

ORDER BY  " & Request.form("sortera") & " " & Request.form("ordning")

slarvfel av mig
__________________________
Varför använder du like och inte =?

för att man i sökningen ska kunna skriva %lars%

Medlem sedan dec. 200012 464 inlägg
#8

Ok, men det är din on-klausul som ställer till det.

Exakt hur är tabellerna definierade och hur ser relationen mellan dom ut? (Du nämner fordon.företagsid men du använder fordon.id så jag känner mig lite förvirrad.)

Medlem sedan juli 2002167 inlägg
#9

fordon.id och parker.id innehåller båda företagets id..

tabellerna har inga relation mellan varandra (mysql stöder inte vad jag vet .. eller? )

261 ms totalt · 4 externa anrop · v20260731065814-full.50d4b5bd
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)