簡體   English   中英

MySQL將多個表中的記錄插入到新表中

[英]MySQL Insert Records from Multiple Tables to New Table

我正在嘗試使用來自其他2個表的記錄來填充新表。

period_states是new / empty

 period_states
   id
   period_id
   sla_id

期間 - 包含15條記錄

periods
  id

slas - 包含84條記錄

slas
  id

我需要在每個現有的sla_id中填充period_states,每個sla_id都有一個exiting period_id。 所以,最終在period_states中應該有1260條記錄。

知道如何自動化嗎? 手動填充將是一場噩夢......

先感謝您!!

如果將句點狀態的id列定義為AUTO_INCREMENT ,那么這應該有效:

INSERT INTO period_states (period_id, sla_id)
SELECT p.id AS period_id
     , s.id AS sla_id
  FROM periods p
 CROSS
  JOIN slas s

這是一個為id列提供值的方法的示例:

INSERT INTO period_states (id, period_id, sla_id)
SELECT @myid := @myid + 1 AS id
     , p.id AS period_id
     , s.id AS sla_id
  FROM periods p
 CROSS
  JOIN slas s
 CROSS
  JOIN (SELECT @myid := 0) m
INSERT INTO period_states
(period_id, sla_id)
SELECT periods.id, slas.id
FROM periods
CROSS JOIN slas
insert into period_states select null, periods.id, slas.id from periods, slas

查看“插入....選擇” http://dev.mysql.com/doc/refman/5.1/en/insert-select.html語法。 ......幾乎與其他答案所顯示的一樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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