[英]Foreach id in one table, insert row in another table
我有兩張桌子。 表“位置”是一對多/一對與具有外鍵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使用反引號而不是單引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.