Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Составление SQL-запросов > сделать одним инсертом множественную вставку |
Автор: dementiev 20.11.2008, 15:10 | ||
Здравствуйте. Таблица `human` +------------------+-----------+ | id_human | name | --------------------+-----------+ | 1 | dima | | 2 | anton | | 3 | sergei | +------------------+------------+ Таблица `mail` +------------+--------------+-----------------+-------------------+ | id_mail | id_sender | id_receiver | topic | --------------+---------------+----------------+------------------+ | 1 | 1 | 2 | 'lalala` | | 2 | 3 | 1 | 'ararat' | +------------+--------------+-----------------+-------------------+ id_sender и id_receiver - это фк на id_human (т.е. человек может быть как сендэром, так и ресивером). Задача : отправить письмо с определённым топиком ВСЕМ пользователям. Это работает, но вставляет одну запись, что и понятно:
Каким образом в одном запросе мне перебрать все id_receiver ? |
Автор: destrd 20.11.2008, 15:36 |
Если не ошибаюсь, то только если формировать INSERT такого вида insert into table values(), values(..), values(..) |
Автор: Zloxa 20.11.2008, 15:57 | ||||
Добавлено @ 16:06 Или так, если мы хотим переслать ранее сформированное письмо
|
Автор: dementiev 20.11.2008, 19:22 |
Zloxa, спасибо. То, что надо. Не мог бы мне ещё объяснить, что значит конструкция "id_human id_receiver" - это и есть "перебрать" все id_receiver ? Ещё раз, спасибо. |
Автор: Zloxa 21.11.2008, 14:18 |
В данном случае ничего не значит. Вообще в селект листе это обозначает что в стобец, которому мы присваиваем имя id_receiver, мы наполняем значениями id_human мы назначаем имя стобца id_receiver. (В некоторых диалкетах требуется писать id_human as id_receiver). Но в конструкции insert into ... select это не имеет никакого значения.. я так пишу просто для повышения читаемости. |