|
|
|
| Не могу понять как работает данный запрос:
INSERT INTO `b_user_group` (`USER_ID`, `GROUP_ID`) SELECT 22, `ID` FROM `b_group` WHERE `ID` in (3,9,10,11);
|
Понимаю только первую часть: Вставить в таблицу b_user_group в колонки `USER_ID`, `GROUP_ID` . а что дальше не понимаю. Ведь обычная структура данного запроса выглядит как: INSERT INTO `table` (`fields`) VALUES (`values`);
Объясните как работает этот запрос? | |
|
|
|
|
|
|
|
для: Dr Lines
(08.10.2009 в 02:30)
| | данные, которые нужно вставить берутся из этой части запроса:
SELECT 22, `ID` FROM `b_group` WHERE `ID` in (3,9,10,11)
|
В первом поле будет число 22, во втором будет ID из таблицы `b_group`, которое присутствует в списке (3,9,10,11) | |
|
|
|
|
|
|
|
для: Ramilka
(08.10.2009 в 03:06)
| | Понятно, такой запрос получается может выполнить несколько действий INSERT за один раз, если результат выполнения SELECT будет содержать несколько строк? | |
|
|
|
|
|
|
|
для: Dr Lines
(08.10.2009 в 03:13)
| | Совершенно верно. Только в отличие от многострочного INSERT данные для вставки берутся непосредственно из другой таблицы. | |
|
|
|
|
|
|
|
для: Dr Lines
(08.10.2009 в 02:30)
| | По сути это копирование части данных таблицы b_group в таблицу b_user_group. | |
|
|
|
|
|
|
|
для: cheops
(08.10.2009 в 03:13)
| | Понятно, спасибо что объяснили. | |
|
|
|