Foreach id在一个表中,在另一个表中插入行

Ivo*_*Ivo 1 sql

我有两张桌子.表'locations'是一对多/一与表'资源'与外键location_id相关.像这样的东西

locations -> id | location
resources -> id | location_id | name | value
Run Code Online (Sandbox Code Playgroud)

我在'位置'有很多记录.现在我想为'locations'中的每个现有'locations.id'添加一个'resources'中的记录,其中包含name和value的默认值以及location_id.

我尝试了下面的查询,它部分地生成了所需的结果,因为这个sql查询剂量设置了'resoruces.name'和'resources.value'的值.它们应分别为"标准"和"1".

INSERT INTO service_categories(location_id) SELECT id FROM locations;
Run Code Online (Sandbox Code Playgroud)

我只是不能通过添加此字段的值来构造查询.这该怎么做?我想要的结果是这样的:

    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
....
Run Code Online (Sandbox Code Playgroud)

Yuc*_*uck 6

如果表resources尚不存在,这应该有效:

SELECT
    location_id as id,
    location_id,
    'Standard' as name,
    1 as value
INTO resources
FROM locations
Run Code Online (Sandbox Code Playgroud)

如果该表已经存在,那么您可以改为:

INSERT INTO resources (id, location_id, name, value)
SELECT
    location_id as id,
    location_id,
    'Standard' as name,
    1 as value
FROM locations
Run Code Online (Sandbox Code Playgroud)

字符串文字将根据您使用的RDBMS而有所不同.例如,我相信MySQL使用反引号而不是单引号.