I am using all test data thus far, so I will simply list the tables and all that I have (w/ data) and I have modified the query. I'm trying to do a COUNT() on the tasks assigned to a given project now. Here's my query:
SELECT proj_trck_projects.project_id, project_title, project_start_date, project_delivery_date, COUNT( bugs.item_category = 'bug' ) AS bug_count, COUNT( features.item_category = 'feature' ) AS feature_count, COUNT( tasks.task_id ) AS task_count
FROM proj_trck_projects
LEFT JOIN proj_trck_items AS bugs ON proj_trck_projects.project_id = bugs.project_id AND bugs.item_category = 'bug'
LEFT JOIN proj_trck_items AS features ON proj_trck_projects.project_id = features.project_id AND features.item_category = 'feature'
LEFT JOIN proj_trck_tasks AS tasks ON proj_trck_projects.project_id = tasks.project_id
GROUP BY proj_trck_projects.project_id
ORDER BY project_title ASC
LIMIT 0 , 50
And here is the table structures / data:
DROP TABLE IF EXISTS `proj_trck_items`;
CREATE TABLE `proj_trck_items` (
`item_id` int(11) NOT NULL auto_increment,
`project_id` int(11) NOT NULL default '0',
`task_id` int(11) NOT NULL default '0',
`item_category` varchar(10) NOT NULL default '',
PRIMARY KEY (`item_id`)
) TYPE=MyISAM AUTO_INCREMENT=19 ;
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (5, 4, 0, 'bug');
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (8, 4, 0, 'bug');
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (9, 4, 0, 'bug');
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (11, 4, 0, 'feature');
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (12, 1, 0, 'feature');
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (18, 1, 0, 'feature');
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (16, 1, 0, 'feature');
INSERT INTO `proj_trck_items` (`item_id`, `project_id`, `task_id`, `item_category`) VALUES (17, 1, 0, 'feature');
#--------------------------------------------------------
DROP TABLE IF EXISTS `proj_trck_projects`;
CREATE TABLE `proj_trck_projects` (
`project_id` int(11) NOT NULL auto_increment,
`project_title` varchar(120) NOT NULL default '',
`project_description` text NOT NULL,
`project_start_date` varchar(14) NOT NULL default '',
`project_delivery_date` varchar(14) NOT NULL default '',
`project_lead_source` varchar(120) NOT NULL default '',
`account_id` int(11) NOT NULL default '0',
`contact_id` int(11) NOT NULL default '0',
PRIMARY KEY (`project_id`)
) TYPE=MyISAM AUTO_INCREMENT=5 ;
INSERT INTO `proj_trck_projects` (`project_id`, `project_title`, `project_description`, `project_start_date`, `project_delivery_date`, `project_lead_source`, `account_id`, `contact_id`)
VALUES (1, 'Test Project', 'dfjlafkjlaksjf \r\nfkafjlkaf\r\nfjkasfas\'fjasfkjlsafj af fasdjflksaf f fdjflkj fadsfj lkjflkasjf kdjf alkj dlkfj alkfj asdlkfj asdlkj asflk', '1115006400', '1117512000', 'kajfkj', 2, 7);
INSERT INTO `proj_trck_projects` (`project_id`, `project_title`, `project_description`, `project_start_date`, `project_delivery_date`, `project_lead_source`, `account_id`, `contact_id`)
VALUES (4, 'Test Project 2', 'dfjlafkjlaksjf \r\nfkafjlkaf\r\nfjkasfas\'fjasfkjlsafj af fasdjflksaf f fdjflkj fadsfj lkjflkasjf kdjf alkj dlkfj alkfj asdlkfj asdlkj asflk', '1115006400', '1117512000', 'kajfkj', 0, 4);
#--------------------------------------------------------
DROP TABLE IF EXISTS `proj_trck_tasks`;
CREATE TABLE `proj_trck_tasks` (
`task_id` int(11) NOT NULL auto_increment,
`project_id` int(11) NOT NULL default '0',
`task_title` varchar(120) NOT NULL default '',
`task_description` text NOT NULL,
PRIMARY KEY (`task_id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
INSERT INTO `proj_trck_tasks` (`task_id`, `project_id`, `task_title`, `task_description`) VALUES (1, 1, 'afsadf', 'fassfasfd');
So w/ those tables and that query, my bug_count, feature_count, and task_count SHOULD be 0, 4, 1 respectively for Test Project and then 1, 3 and 0 for Test Project 2. Instead, it's spitting back 0, 4, 4 and 3, 3, 0.
Any ideas?