2014-11-27 5 views
1

У меня есть две таблицы. Таблица «местоположения» - это «один-ко-многим», один из которых связан с «ресурсами» таблицы с внешним ключом location_id. Что-то вроде этогоForeach id в одной таблице, вставить строку в другую таблицу

locations -> id | location 
resources -> id | location_id | name | value 

У меня есть много записей в «местах». Теперь я хочу добавить для каждого существующего «location.id» в «местах» запись в «ресурсах» со значениями по умолчанию для имени и значения и для определения location_id.

Я попытался выполнить запрос, ниже которого генерируется частично желаемый результат, потому что этот запрос значения запроса sql задает значения 'resoruces.name' и 'resources.value'. Они должны быть соответственно «стандартными» и «1».

INSERT INTO service_categories(location_id) SELECT id FROM locations; 

Я просто не могу построить запрос с добавлением значений для этих полей. Как это сделать? результат, который я хочу что-то вроде этого:

id | location_id | name  | value 
------------------------------------- 
    1 | 1   | Standard | 1 
    2 | 2   | Standard | 1 
    3 | 3   | Standard | 1 
    4 | 4   | Standard | 1 
    5 | 5   | Standard | 1 
    6 | 6   | Standard | 1 
    7 | 7   | Standard | 1 
    8 | 8   | Standard | 1 
.... 

ответ

4

Это должно работать, если таблица resources уже не существует:

SELECT 
    location_id as id, 
    location_id, 
    'Standard' as name, 
    1 as value 
INTO resources 
FROM locations 

Если таблица уже существует, то вы бы написать это вместо этого:

INSERT INTO resources (id, location_id, name, value) 
SELECT 
    location_id as id, 
    location_id, 
    'Standard' as name, 
    1 as value 
FROM locations 

Строковый литерал будет зависеть от того, какие РСУБД вы используете. Например, я полагаю, что MySQL использует backticks, а не одинарные кавычки.

+1

Спасибо! С одним дополнением к запросу он отлично работает! Вставить в ресурсы (location_id, name, value) выбрать id как location_id, «Standard» как имя, 1 как значение из местоположений, где id не включен (выберите location_id из ресурсов) – Ivo

Смежные вопросы