Välkommen till wF!
Du kan använda GROUP BY i stället:
SELECT p.post_id
, COUNT(*)
FROM `blogposts` p`
INNER
JOIN `blogcomments` c
ON p.post_id = c.post_id
GROUP
BY p.post_id
2 svar · 634 visningar · startad av Davlid
Jag har följande SQL fråga, och problemet verkar ligga i jämförelsen mellan p.post_id och c.post_id. Tar jag bort den markerade WHERE-satsen så returneras antalet poster i tabellen blogcomments som det ska.
Men följande kod fungerar alltså inte. Är det något speciellt man måste tänka på när man gör detta i MySQL?
SELECT p.post_id, (
SELECT COUNT( * )
FROM `blogcomments` c
[blue]WHERE p.post_id = c.post_id[/blue]
)
FROM `blogposts` p;
Jag får följande meddelande:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1
MySQL Serverversion: 5.0.45
Jag bifogade den nuvarande tabellstrukturen om någon vill testa.
Välkommen till wF!
Du kan använda GROUP BY i stället:
SELECT p.post_id
, COUNT(*)
FROM `blogposts` p`
INNER
JOIN `blogcomments` c
ON p.post_id = c.post_id
GROUP
BY p.post_id
Hej Peter,
Tack för välkomnandet och svaret! Jag fick precis samma tips från annat håll och fick erkänna min ringrostighet vad det gäller SQL :-)
Tack för ett snabbt svar!