Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: Mysql сложный запрос
цитата
01/06/07 в 09:37
 atrius
Приветствую.
Просветите меня, плз, что делает вот такой запрос.
Я понимаю, что таблицу создает, но вот какую....
Код:

CREATE TABLE artists_and_works
  SELECT artist.name, COUNT(work.artist_id) AS number_of_works
  FROM artist LEFT JOIN work ON artist.id = work.artist_id
  GROUP BY artist.id;

Спасибо.
цитата
01/06/07 в 09:55
 Stek
таблицу по результатам селекта
цитата
01/06/07 в 09:57
 atrius

А можно чуть подробней...
Как результат Count(поле) As (другое поле) можно использовать как названия поля в таблице
Count же число возвращает
цитата
01/06/07 в 10:56
 Stek
ну запусти Код:
SELECT artist.name, COUNT(work.artist_id) AS number_of_works
  FROM artist LEFT JOIN work ON artist.id = work.artist_id
  GROUP BY artist.id

и вот весь результат, с такими же названиями полей, будет использован для создания таблицы.
цитата
01/06/07 в 13:36
 alexpotemkin
Скажем мягко запрос не сложный icon_smile.gif. Раз уж ты добрался до документации по мускулу (это уже само по себе похвально, желательно читать ее побольше и подобных вопросов более не вешать, тем более здесь, поверь мне совсем не место icon_smile.gif), а именно этот пример расположен на странице http://dev.mysql.com/doc/refman/5.0/en/create-table.html. Так вот здесь идет речь о создании таблицы artists_and_works, которая содержит два поля name и number_of_works, собственно говоря и все.
цитата
01/06/07 в 22:44
 Sirgey
CREATE TABLE artists_and_works //создать таблицу по имени artists_and_works
SELECT artist.name, COUNT(work.artist_id) AS number_of_works//c полями name и number_of_works
FROM artist //а качестве данных для заполнения использовать выбрку из таблицы artist
и
LEFT JOIN work//таблицы work
GROUP BY artist.id //сгруппировать строки по id в artist для подсчёта COUNT(work.artist_id)
artist.id = work.artist_id//причём строки склеить в которых столбец id в таблице artist равен столбцу artist_id в таблице work, таким образом поле name будет из одной таблицы (artist), а поле number_of_works будет суммой строк из другой (work)

А теперь по человечески.

Будет создана таблица artists_and_works, столбцы name и number_of_works. Туда будут вставлены все имена артистов (name из таблицы artist) и количество работ данного артиста (number_of_works, число строк из таблицы works для данного артиста). В итоге получится как - то так:
name, number_of_works
Madonna, 20
Petr, 10
Fill, 100

Вопросы ещё есть? icon_smile.gif
цитата
04/06/07 в 10:14
 atrius
Вопросов больше нет. Огромное спасибо


Эта страница в полной версии