Forum Webscript.Ru
Общие => Базы данных => Тема начата: Skif от 02 Апреля 2004, 16:21:01
-
Имеется таблица:
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(size) from _table_name_2_ where ident=\'pupkin\';
Мне нужно что бы был сумарный вывод, не только имя пользователя, права, его нынешнее состояние (залочен/нет) и лимит, а еще и сколько он "съел", что можно вычислить из второй таблицы суммированием столбца sum с именем пользователя из первой таблицы, добытое первым запросом.
Вот никак не могу придумать как такой запрос написать, или не тем пользуюсь?
-
Примерно так
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 писал (впредь укзывай какую СУБД используешь)
-
Спасибо огромное, к сожалению я не нашел хорошего описания по MySQL(писал на нем) этого типа запросов. Может посоветуешь и литературу?
-
при изучении баз стоит выделить 3 вещи:
- изучение стандарта SQL (в сети куча литературы, я не помню что я читал)
- изучение диалекта SQL для конкретной СУБД (в твоем случае mysql). Ту просто мануал читать надо. Он на русский переведен (http://mysql.com/doc/ru/). Еще много хороших отзывов о книге
Поль Дюбуа "MySQL" (первое издание AFAIK устарело, вроде второе сейчас издается)
- изучуние теории по проектированию баз данных. Самое популярная здесь книга
Крис Дейт "Введение в системы баз данных" (последнее издание - седьмое)