Тема: Вибірка кількості записів в третій таблиці
Доброго дня
Звертаюсь по підказку до спільноти, є таблиці
-- Main costcalculator table
CREATE TABLE IF NOT EXISTS `cot_cc_calcs` (
`cc_id` int(11) NOT NULL auto_increment,
`cc_name` varchar(255) collate utf8_unicode_ci NOT NULL default '',
`cc_desc` text(500) collate utf8_unicode_ci NOT NULL default '',
`cc_groups` text(500) collate utf8_unicode_ci NOT NULL,
`cc_order` int(4) default NULL,
PRIMARY KEY (`cc_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- Rows costcalculator table
CREATE TABLE IF NOT EXISTS `cot_cc_calcs_rows` (
`ccr_id` int(11) NOT NULL auto_increment,
`cc_id` int(11) NOT NULL,
`ccr_name` varchar(255) collate utf8_unicode_ci NOT NULL default '',
`ccr_desc` text(500) collate utf8_unicode_ci NOT NULL default '',
`ccr_units` varchar(255) collate utf8_unicode_ci NOT NULL default '',
`ccr_order` int(4) default NULL,
PRIMARY KEY (`ccr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
-- User cost costcalculator table
CREATE TABLE IF NOT EXISTS `cot_cc_calcs_users_cost` (
`ccu_id` int(11) NOT NULL auto_increment,
`ccr_id` int(11) NOT NULL,
`ccu_user_id` int(11) NOT NULL,
`ccu_cost` int(11) NOT NULL,
`ccu_updated` int(11) NOT NULL,
PRIMARY KEY (`ccu_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
Потрібно виконати такий запит (він з помилкою)
SELECT c.*, COUNT(r.ccr_id) AS cc_row_count, COUNT(DISTINCT ur.ccu_user_id) AS ur_specialists
FROM $db_cc_calcs AS c
LEFT JOIN $db_cc_calcs_rows AS r ON c.cc_id = r.cc_id
LEFT JOIN $db_cc_calcs_users_cost AS ur ON r.ccr_id = ur.ccr_id
GROUP BY c.cc_id
HAVING cc_row_count > 0
ORDER BY c.cc_order ASC
LIMIT 0, 50
Суть, вибрати з таблиці cot_cc_calcs записи в яких кількість рядків в таблиці cot_cc_calcs_rows по cc_id більше 0 і в свою чергу потрібно підрахувати скільки записів в таблиці cot_cc_calcs_users_cost для значень з таблиці cot_cc_calcs_rows по полю ccr_id
Щось намудрував чи чогось не вистачає?
Дякую