| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Составление SQL-запросов > запрос из 2х тадлиц |
| Автор: Ronin08 19.2.2010, 11:03 |
| Доброго времени суток Имеется 2 таблицы: 1. org(id, name), id - PK; 2. log (id, org_id, date) id - PK; необходимо вывести для org.id = log.org_id минималную log.date, максимальную log.date и количество log.org_id получится -------------------------------------------------------------- org_id | name | date_min | date_max | count -------------------------------------------------------------- 1 | name1| 21.12.208 | 02.01.2010| 6 -------------------------------------------------------------- 2 | name2| ................................ |
| Автор: Zloxa 19.2.2010, 11:08 |
Что именно не понятно? Как работает http://www.google.ru/search?hl=ru&newwindow=1&rlz=1C1GGLS_ruRU327RU327&q=join+sql&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f&oq=или как работает http://www.google.ru/search?hl=ru&newwindow=1&rlz=1C1GGLS_ruRU327RU327&q=%22group+by%22+sql&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f&oq=? |
| Автор: Deniz 19.2.2010, 15:24 |
| Ronin08, а сам пробовал запрос написать? Напиши здесь, мы поправим, если что. |
| Автор: Ronin08 21.2.2010, 01:02 | ||||
так работает все нормально, но мне надо еще выводить org.name, если я добавлю в select еще org.name, то будет ошибка
Но если добавить в group by помимо org.id еще org.name, то все нормально. Просто на самом деле в реальной ХП должно быть 4 join и выводить надо много полей. так их все и надо указывать в group by? |
| Автор: Zloxa 21.2.2010, 12:20 | ||
Лучше применить к ним агрегатную функцию типа max, min. Добавлено через 6 минут и 24 секунды иногда можно еще можно джойн сделать после группировки
это бред. Почитай про INNER JOIN |
| Автор: Zloxa 22.2.2010, 02:13 |
если ты про мой запрос - да. издержки копипаста, сорри. |
| Автор: Ronin08 22.2.2010, 17:41 |
| Zloxa, спасибо за помощь |