Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Umka Гость
|
Добавлено: Пн Окт 14 2002 23:17 Заголовок сообщения: Очень нужна помощь по составлению запроса mysql |
|
|
Вопрос состоит в следующем: У меня есть две таблицы: Таблица nug: +----------+----------+ | ke | kol1 | +----------+----------+ | 1 | 32 | | 1 | 180 | | 2 | 12 | | 2 | 100 | | 2 | 25 | | 2 | 75 | | 3 | 40 | | 3 | 37 | | .. | .. | +----------+----------+
Таблица nas: +----------+----------+ | ke | fio | +----------+----------+ | 1 | Иванов | | 2 | Петров | | 3 | Сидоров | | .. | .. | +----------+----------+
Мне нужно было вывести из таблицы nug количество абонентов, у которых суммарный показатель sum(kol1) больше 200. Я делал такой запрос и получал нужный мне результат: Select ke,sum(kol1) as sum_kol from nug group by ke having sum_kol >200; +---------+-----------+ | ke | sum_kol | +---------+-----------+ | 1 | 212 | | 1 | 212 | +---------+-----------+ Но теперь задача несколько другая: кроме вышеуказанного мне нужно добавить столбик с фамилией тех у кого sum(kol1) > 200 из таблицы nas, где тоже присутствует идентификатор ke. Короче говоря это должно выглядеть так: +---------+-----------+--------+ | ke | sum_kol | fio | +---------+-----------+--------+ | 1 | 212 |Иванов | | 1 | 212 |Петров | +---------+-----------+--------+ Как мне это можно сделать? Я пытался написать, но ничего не выходит, запрос выполняется очень долго и выдает непонятно что. Я делал так: Select nug.ke,sum(nug.kol1) as sum_kol1, nas.fio from nug,nas group by nug.ke having sum_kol >200 and nug.ke=nas.ke; Результат такого запросатолько одна строчка) +--------+----------------+----------------+ | ke | sum_kol | fio | +--------+----------------+----------------+ | 1 |общая сумма по |Иванов (т.е. | | |столбцу kol1 для|первая фамилия | | |всех ke |первого ke в та-| | | |лице nas | +--------+----------------+----------------+
Как мне получить желаемый результат? Я уже вторые сутки ломаю себе голову… Если вам не трудно напишите мне на umka@ukr.net Заранее Вам благодарен! |
|
Вернуться к началу |
|
|
Олигарх
Зарегистрирован: 28.09.2002 Сообщения: 102
|
Добавлено: Вт Окт 15 2002 07:43 Заголовок сообщения: Re: |
|
|
Не надо ломать голову вторые сутки! Это может сказаться на физическом состоянии мозгов
Сделай в два захода - выбрал те номера, у которых kol больше 200, а во втором запросе выбирай уже из второй таблицы фамилии, соответствующие этим номерам. |
|
Вернуться к началу |
|
|
Umka Гость
|
Добавлено: Вт Окт 15 2002 13:55 Заголовок сообщения: Re: новый вопрос |
|
|
Спасибо! Я уже вчера это сделал! Но теперь у меня новая проблема: запрос выполняется очень долго,т.к. нет не первичных ключей не индексов! Как можно создать индекс для уже существующей таблицы mysql? |
|
Вернуться к началу |
|
|
Олигарх
Зарегистрирован: 28.09.2002 Сообщения: 102
|
Добавлено: Ср Окт 16 2002 23:21 Заголовок сообщения: Re: |
|
|
Что-то типа этого:
ALTER TABLE tbl_name ADD PRIMARY KEY (column_name), ADD INDEX [index_name] (index_col_name); |
|
Вернуться к началу |
|
|
|