我有两张桌子.表'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)
如果表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使用反引号而不是单引号.