| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Базы Данных > Проблема с запросом |
| Автор: KgCoder 8.6.2009, 12:23 | ||
| Есть таблицы: `subjects` (`id`, `title`) `exams` (... `subject`) `questions` (... `subject`) Делаю такой запрос:
id = 7 title = 030301.65 Психология exams = 3 questions = 3 Проблема в том что запись в таблице `exams` всего одна. Добавил еще один запись и результат вообще запутал: id = 7 title = 030301.65 Психология exams = 6 questions = 6 Теперь еще и вопросы увеличились... а их всего три.... помогите разобраться. Кстати на локалке почему-то всё нормально работает. |
| Автор: Neox_GeForce 8.6.2009, 13:27 | ||||||
почему
а He
отредактируй сообщение типа
а то не влазится |
| Автор: KgCoder 8.6.2009, 14:49 |
| Попробовал INNER... ничего не изменилось. |
| Автор: skyboy 8.6.2009, 15:08 |
| у тебя на каждый уникальный s.id приходится один e.id, на каждый уникальный e.id приходится 3 q.id получается следующая выборка: s.id e.id q.id 1 2 67 1 2 69 1 2 73 естественно, если это сгруппировать по s.id, то получим count(e.id) = 3 и count(q.id) = 3 решение этой проблемы зависит от используемой СУБД, точнее от возможностей диалекта SQL конкретной, используемой тобою СУБД. которую ты не указал. решение для MySQL(жаль, что не знаком с sybase - принципиально указал бы решение для sybase) если тебе надо, чтоб был подсчет уникальных значений e.id, то вставь в count ещё distinct. тогда будет подсчет только уникальных значений. то есть count(distinct e.id) для приведенного мной результата выдаст "1". |
| Автор: KgCoder 8.6.2009, 15:09 | ||
Решил через такой запрос:
Добавлено: skyboy, Спасибо! Полчаса читал информацию по JOIN... |