我有两张桌子。表“位置”是一对多/一对与具有外键location_id的表“资源”相关。像这样
locations -> id | location
resources -> id | location_id | name | value
我在“位置”中有很多记录。现在,我想为“ locations”中的每个现有“ locations.id”添加一个“ resources”中的记录,其中包含名称和值的默认值以及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
....
如果表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
字符串文字会根据您所使用的RDBMS的不同而有所不同。例如,我相信MySQL使用反引号而不是单引号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句