Задавайте вопросы, мы ответим
Вы не зашли.
Страниц: 1
Уважаемые специалисты помогите составить запрос!
Пример условный:
Допустим есть табличrа figures:
id form color
---------------------------------
1 круг красный
2 квадрат синий
3 круг зеленый
4 овал синий
...
и так далее
Необходимо в таблицу new_figures (поля: id, form, material) добавить все строки из figures с полем color='синий' и при этом material присвоить значение 'дерево'.
Сам я слабо разбираюсь в mysql и обычно обхожусь простыми запросами типа select и insert (одной строки), но тут понадобилось одновременно добавить несколько строк. Заранее спасибо за ответы.
Неактивен
Неактивен
Огромное вам человеческое спасибо!!!
LazY написал:
INSERT INTO new_figures (id, form, material)
SELECT id, form, 'дерево' FROM figures WHERE color='синий'
Так у Вас в новой таблице будут значения id из старой.
Если хотите в новой новые же id, уберите поле id из запроса.
Вот еще такой вопрос: в таблицу new_figures вместо поля form входит figures.id. Причем у figures id типа varchar(4) (пример: "0104") и помимо сортировки по цвету надо отсортировать только (к примеру) фигуры с кодами от 0100 до 0120. Как в таком случае измениться запрос.
Отредактированно Stepan (28.01.2010 20:11:36)
Неактивен
Неактивен
Уважаемый, Lazy.
Большое вам спасибо за ответы. Чтобы я к вам больше не приставал последний вопросик)) Скажем так для понимания:
Мне не совсем понятно какие именно и в каком порядке указываются столбцы между SELECT и FROM в данном запросе
Неактивен
Stepan написал:
Вот еще такой вопрос: в таблицу new_figures вместо поля form входит figures.id. Причем у figures id типа varchar(4) (пример: "0104") и помимо сортировки по цвету надо отсортировать только (к примеру) фигуры с кодами от 0100 до 0120. Как в таком случае измениться запрос.
Если я правильно вас понял, то
Stepan написал:
Мне не совсем понятно какие именно и в каком порядке указываются столбцы между SELECT и FROM в данном запросе
Те значения которых вы хотите вставить в новую таблицу, в том порядке в каком они указаны в части INSERT.
В данном случае вы заполняете столбцы form и material новой таблицы, помещаяя в них значения id из старой таблицы и 'дерево' соответственно.
Неактивен
Вась, я думаю, что в form новой таблицы из старой должно идти form, а не id.
(хотя я могу и ошибаться; вообще это топикстартеру виднее)
Неактивен
Т.е. правильнее всего это выглядит так:
Отредактированно Stepan (29.01.2010 22:07:40)
Неактивен
Да, можно и так.
При составлении запросов вида INSERT-SELECT главное - это чтобы порядок столбцов совпадал. Здесь дело не в именах столбцов, а именно в порядке.
Неактивен
Спасибо большое! Ну мне чисто для понимания, дабы с каждым новым запросом сюда не бегать)))
Неактивен
Страниц: 1