"SELECT n.object_ID,n.user_ID,u.nickname,
n.news_topic,n.news_msg,n.news_date,
(SELECT Count(object_ID) FROM tblComment WHERE object_ID = n.object_ID AND type_ID = 1)
FROM tblNews n,tblUser u
WHERE n.user_ID = u.user_ID
ORDER BY n.news_date DESC LIMIT 0,5"
Hur får jag denna SQL satsen att fungera i mySQL? Jag har vänt
och vridit på den ett bra tag nu utan att komma till någon bra
lösning? Problemet ligger i att jag vill Hämta ut antalet
kommentarer till varje nyhet, men mySQL klagar vid ",(SELECT..."
SELECT n.object_ID,n.user_ID,u.nickname,
n.news_topic,n.news_msg,n.news_date,
Count(c.object_ID)
FROM tblNews n join tblUser u
on n.user_ID = u.user_ID
left join tblComment C
on n.object_id = c.object_id
group by n.object_ID,n.user_ID,u.nickname,
n.news_topic,n.news_msg,n.news_date
ORDER BY n.news_date DESC
LIMIT 0,5
Du får nog vänta någon/några versioner till innan det finns skalär subselect i mysql.
Hur ser det ut i din kod? Är det PHP eller ASP? Kan du lägga till en utskift av statementet innand du skickar den till mysql? Kanske det saknas någon blank vid radbrytning?
SELECT n.object_ID,n.user_ID,u.nickname,
n.news_topic,n.news_msg,n.news_date,
Count(c.object_ID)
FROM tblNews n [b]left[/b] join tblUser u
on n.user_ID = u.user_ID
left join tblComment C
on n.object_id = c.object_id
group by n.object_ID,n.user_ID,u.nickname,
n.news_topic,n.news_msg,n.news_date
ORDER BY n.news_date DESC
LIMIT 0,5
Om jag lägger till left i koden fungerar det tillfredsställande. Dvs. jag får ut den information som jag vill ha. Det kan inte vara så att de ska vara ett "left" där? :stud
Nej, kanske kan vara så att mysql kräver att det står inner join. Jag tittar i Mysql dokumentationen. Enligt standard sql sä är ordet inner inte nödvändigt.
Byt left mot inner för left join och inner join är inte samma sak.