Автор Тема: join или как правильно написать запрос?  (Прочитано 2510 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Имеется  таблица:
SELECT from _table_name_1_
+------------+-----------------+------------+------------+
| user_login | user_permission | user_state | user_limit |
+------------+-----------------+------------+------------+
| skif        | admin           | unlock     | 0          |
| daniman    | user            | unlock     | 165000000  |
| teleport   | user            | unlock     | 0          |
| manager    | user            | unlock     | 28000000   |

такого содержания.
так же имеется другая таблица, куда слаживаются логи прокси-сервера. там необходимо сделать выборку по одному столбцу size, в котором храниться размер скачаных данных. Этот запрос пишеться элементарно

SELECT SUM(sizefrom _table_name_2_ where ident=\'pupkin\';

Мне нужно что бы был сумарный вывод, не только имя пользователя, права, его нынешнее  состояние (залочен/нет) и лимит, а еще и сколько он "съел", что  можно вычислить из второй таблицы суммированием столбца sum с именем пользователя из первой таблицы, добытое первым запросом.
Вот никак не могу придумать как такой запрос написать, или не тем пользуюсь?
Всё будет хорошо - я договорился!

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
join или как правильно написать запрос?
« Ответ #1 : 02 Апреля 2004, 19:43:33 »
Примерно так SELECT * , SUM(tab2.size) from _table_name_1_ as tab1
LEFT JOIN _table_name_2_ as tab2 ON tab1.user_login = tab2.ident
GROUP BY tab2.ident


а вообще в каждой нормальной книге по СУБД join-ам достаточно много внимания уделяют. Читай.

ЗЫ
пример под mysql писал (впредь укзывай какую СУБД используешь)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Skif

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 187
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
join или как правильно написать запрос?
« Ответ #2 : 05 Апреля 2004, 14:32:24 »
Спасибо огромное, к сожалению я не нашел хорошего описания по MySQL(писал на нем) этого типа запросов. Может посоветуешь и литературу?
Всё будет хорошо - я договорился!

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
join или как правильно написать запрос?
« Ответ #3 : 05 Апреля 2004, 16:03:01 »
при изучении баз стоит выделить 3 вещи:
 - изучение стандарта SQL (в сети куча литературы, я не помню что я читал)
 - изучение диалекта SQL для конкретной СУБД (в твоем случае mysql). Ту просто мануал читать надо. Он на русский переведен (http://mysql.com/doc/ru/). Еще много хороших отзывов о книге
Поль Дюбуа "MySQL" (первое издание AFAIK устарело, вроде второе сейчас издается)
 - изучуние теории по проектированию баз данных. Самое популярная здесь книга
Крис Дейт "Введение в системы баз данных" (последнее издание - седьмое)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28