Archief - MYSQL: JOIN probleem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Disa

Legacy Member
Ik heb een probleem met het ophalen van het aantal comments er zijn op een newspost. Ik probeer dit in één query te doen. Het probleem zit hem erin als er nog geen comments gepost zijn hij het betreffende news item niet zal ophalen.

Query:
Code:
SELECT n . * , u.user_id, u.username, c . * , COUNT( d.sid ) AS total
FROM c_news n
INNER JOIN phpbb_users u ON ( u.user_id = n.poster )
INNER JOIN c_news_cat c ON ( c.cat_id = n.cat )
LEFT JOIN c_news_comments d ON ( d.sid = n.news_id )
GROUP BY d.sid
ORDER BY n.date DESC

d.sid is het id van het news_id, en die moet hij dus tellen.

Ik hoop dat de post duidelijk genoeg is.

Thx,

Disa

orez

Legacy Member
denk dat je probleem bij de LEFT JOIN zit, dat dit LEFT OUTER JOIN moet zijn... probeer es ;)

killgore

Legacy Member
SELECT n . * , u.user_id, u.username, c . * , COUNT( d.sid ) AS total
FROM c_news n
INNER JOIN phpbb_users u ON ( u.user_id = n.poster )
INNER JOIN c_news_cat c ON ( c.cat_id = n.cat )
LEFT JOIN c_news_comments d ON ( n.news_id = d.sid)
ORDER BY n.date DESC

Disa

Legacy Member
dat had ik ook al geprobeerd maar het werkt dus niet. ;-)

Dis

killgore

Legacy Member
Disa zei:
dat had ik ook al geprobeerd maar het werkt dus niet. ;-)

Dis
foutje, die group by moest ook aangepast worde, ma ben ek vergete :p

ik ben wel niet compleet zeker over die with rollup, ma volgens mij is dat dus de oplossing ;)

edit: dit zou het moeten doen i guess:

SELECT n . * , u.user_id, u.username, c . * , COUNT( d.sid ) AS total
FROM c_news n
INNER JOIN phpbb_users u ON ( u.user_id = n.poster )
INNER JOIN c_news_cat c ON ( c.cat_id = n.cat )
LEFT JOIN c_news_comments d ON ( n.news_id = d.sid)
GROUP BY n.news_id, d.sid
ORDER BY n.date DESC
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan