webForumDet fria alternativet

inner join?

4 svar · 191 visningar · startad av clacke

clackeMedlem sedan feb. 2003234 inlägg
#1

En användare kan tillhöra flera "units", och jag vill bara skriva ut "firstname" en gång och alla "units" som han tillhör. Hur ska jag göra med följande sqlsats? Den funkar men den skriver ut allt flera gånger, jag vill bara att den skriver ut "units" flera gånger.

[kod]
sql = "SELECT * FROM persons p,units u ,areas a,unitname un,division d,userinfo ui where ui.unit_id ="& unit &" and ui.unit_id=u.unit_id and ui.area_id=a.area_id and ui.person_id=p.person_id and p.unitname_id=un.unitname_id and p.division_id=d.division_id;"
set rs = conn.Execute (sql)

<%do until rs.eof %>
<%=rs("firstname")%>
<%=rs("unit")%>
<%rs.movenext
loop %>

Engine^Medlem sedan dec. 20003 887 inlägg
#2

I vilken tabell ligger firstname och i vilken tabell ligger units? Det ser ut som du plockar ut en väldig massa onödig information med din fråga.

clackeMedlem sedan feb. 2003234 inlägg
#3

firstname ligger i persons och unit ligger i units, ja jag vet att det ser ut att den väljer ut en massa onödigt men jag väljer ut mer än bara firstname och unit egentligen, ville inte skriva ut allt utan bara det viktiga.

aasahMedlem sedan mars 20034 471 inlägg
#4

Re: inner join?

Testa:

sql = "SELECT * FROM persons p,units u ,areas a,unitname un,
division d,userinfo ui where ui.unit_id ="& unit &" and 
ui.unit_id=u.unit_id and ui.area_id=a.area_id and ui.person_id=p.person_id and p.unitname_id=un.unitname_id 
and p.division_id=d.division_id[red]
group by < det som bara ska ut en gång>[/red];

Blev det så som du hade tänkt dig det?

LarsGMedlem sedan dec. 200012 464 inlägg
#5

Det är sådant man typiskt hanterar i applikationen. Hämta data sortertat med avseende på firstname, samla ihop alla units och skriv ut när det kommer ett nytt firstname.

122 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
120 ms — hämta tråd, inlägg och bilagor (db)