簡體   English   中英

在一個表中查找每個ID,在另一表中插入行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM