webForumDet fria alternativet
Logga in / Bli medlem

left join?

Databaser & SQL

4 svar · 180 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

halåjs!
vad göra för att få fram alla posterna i den vänstra tabellen, nu hämtar den bara upp de som också har poster i den högra.
left join verkar inte ha sin verkan här, snälla! säg att det går att fixa.

strsql = "select c.clientid, c.companyname, count(p.projectid) as pid "&_
"from clients c left join projects p on c.clientid = p.clientid where p.active = 1 "&_
"group by c.clientid, c.companyname order by c.companyname"
Medlem sedan dec. 200012 464 inlägg
#2

Då du har ett villkor på den högra tabellen i ditt where villkor så tar det bort alla poster som inte matchar.

strsql = "select c.clientid, c.companyname, count(p.projectid) as pid "&_
"from clients c left join projects p on (c.clientid = p.clientid and p.active = 1) "&_
"group by c.clientid, c.companyname order by c.companyname"
Medlem sedan juni 20003 076 inlägg
#3

såklart! :(
where-taggen är till bara för räkningen: count(p.projectid) as pid
kan man bestämma på något annat vis att den bara ska räkna de poster som har värdet 1?

Medlem sedan dec. 200012 464 inlägg
#4

Den fråga som jag skrev borde fungera på det sättet.

I och med att du har

count(p.projectid)

så kommer den inte att ta med de poster där p.projectid är null.

Nu vet jag inte om jag förstår exakt vad du vill ha.

Medlem sedan juni 20003 076 inlägg
#5

sorry, jag läste bara texten du skrev (jag vet, otacksamt!) :r
men det FUNKAR ju! Tack! :bire

263 ms totalt · 4 externa anrop · v20260731065814-full.df76c93f
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
130 ms — ändringar (db)