![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| KgCoder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 6.3.2008 Где: KGstan Репутация: нет Всего: нет |
Есть таблицы:
`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 Теперь еще и вопросы увеличились... а их всего три.... помогите разобраться. Кстати на локалке почему-то всё нормально работает. Это сообщение отредактировал(а) KgCoder - 8.6.2009, 14:51 |
|||
|
||||
| Neox_GeForce |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 283 Регистрация: 14.11.2007 Где: Украина Репутация: нет Всего: нет |
почему
а He
отредактируй сообщение типа
а то не влазится Это сообщение отредактировал(а) Neox_GeForce - 8.6.2009, 13:28 -------------------- ![]() Челябинские программисты настолько суровы, что обходятся без компиляторов. Челябинские программисты настолько суровы, что считают ассемблер недопустительной роскошью - они вручную магнетизируют участки жесткого диска. |
||||||
|
|||||||
| KgCoder |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 6.3.2008 Где: KGstan Репутация: нет Всего: нет |
Попробовал INNER... ничего не изменилось.
|
|||
|
||||
| skyboy |
|
|||
|
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 14 Всего: 260 |
у тебя на каждый уникальный 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 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 93 Регистрация: 6.3.2008 Где: KGstan Репутация: нет Всего: нет |
Решил через такой запрос:
Добавлено: skyboy, Спасибо! Полчаса читал информацию по JOIN... Это сообщение отредактировал(а) KgCoder - 8.6.2009, 15:12 |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |