webForumDet fria alternativet

Inner join?

2 svar · 186 visningar · startad av JeppeN

JeppeNMedlem sedan okt. 20015 inlägg
#1

Hej!

Jag har lite problem med en sql-fråga.
Det är två stycken tabeller, en med kunder och en med orders.
Jag vill kunna räkna hur många orders det är till varje kund.
Nedanstående kod fungerar men den visar endast kunder som har minst en order.
Hur gör jag om jag vill kunna lista alla kunder, oavsett hur många orders dom har?

$sql = "
SELECT *, kunder.id,
COUNT(kunder.id) AS antal_orders  
FROM kunder 
INNER JOIN orders ON kunder.id = orders.kund
GROUP BY kunder.id
ORDER BY kunder.id DESC";
cyprysMedlem sedan dec. 20003 563 inlägg
#2

Tips1 - INNER JOIN -> LEFT JOIN
Tips2 - COUNT(*) AS antal

JeppeNMedlem sedan okt. 20015 inlägg
#3

Tack, det var snabba tips
Jag fick dock ändra count till orders.id så att man får noll som värde om det inte är några orders

Men vad skiljer egentligen Left join från Inner join?

$sql = "
SELECT *, kunder.id,
COUNT(orders.id) AS antal_orders  
FROM kunder 
LEFT JOIN orders ON kunder.id = orders.kund
GROUP BY kunder.id
ORDER BY kunder.id DESC";
134 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)