Lette kryptisk MySQL Query | Part 2
Hejjeg har i et andet spm. fået lavet dette MySQL query... prob. er at det ikke virker 100%...
$SQL = "SELECT a.ID, a.Headline, a.date, COUNT( * ) AS antal_kommentare FROM forum AS a, forum AS b WHERE a.ID = b.Ref_ID AND b.Board = '$Board' GROUP BY a.ID DESC";
det jeg vil have det til, er at finde:
ID
Headline
date
Ref_Date
(og så den kryptiske) antal_kommentare...
tabellen den skal trækkes fra ser sådan her ud:
CREATE TABLE forum (
ID int(11) NOT NULL auto_increment,
Ref_ID int(11) NOT NULL default '0',
Board int(11) NOT NULL default '',
Headline tinytext NOT NULL,
date int(11) NOT NULL default '0',
Ref_Date int(11) NOT NULL default '',
PRIMARY KEY (ID)
)
og indholdet kan fx se sådan her ud:
1, 0, 2, 'test 1', [unix time stamp], [unix time stamp]
2, 0, 4, 'test 2', [unix time stamp], [unix time stamp]
3, 1, '', '', [unix time stamp], [unix time stamp]
4, 0, 2, 'test 3', [unix time stamp], [unix time stamp]
5, 4, '', '', [unix time stamp], [unix time stamp]
6, 1, '', '', [unix time stamp], [unix time stamp]
hvis jeg så laver query'et med $board = 2, så vil jeg gerne have disse rækker tilbage
(i formen: ID, Headline, Ref_Date, antal_kommentare)
1, 'test 1', [unix time stamp], 2 // antal_kommentare = 2, fordi der findes 2 rækker med ref_id = 1
4, 'test 3', [unix time stamp], 1 // der findes 1 række med ref_id = 4
håber i forstår, det er lidt kryptisk...
det som fejlen ved det nuværende query er, at den ikke finde de række hvor der ikke er nogle kommentare til, altså hvor antal_kommentare vill være 0...
fejlen ligger jo i at man siger "where a.id = b.ref_id and b.board = '$board'"... derfor kan der kun komme rækker med kommentare, men jeg KAN ikke selv rette dette, har prøvet en 42-47 forskellige ting nu... kan ikke løse det...
håber altså at i forstår...
Morten
