我正在尝试使用其他2个表中的记录填充新表。
period_states是新的/空的
period_states
id
period_id
sla_id
期间 - 包含15条记录
periods
id
slas - 包含84条记录
slas
id
我需要在每个现有的sla_id中填充period_states,每个sla_id都有一个退出的period_id。所以,最终在period_states中应该有1260条记录。
知道如何自动化吗?手动填充将是一场噩梦......
提前谢谢!!
答案 0 :(得分:6)
如果期间状态的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
答案 1 :(得分:4)
INSERT INTO period_states
(period_id, sla_id)
SELECT periods.id, slas.id
FROM periods
CROSS JOIN slas
答案 2 :(得分:2)
insert into period_states select null, periods.id, slas.id from periods, slas
答案 3 :(得分:0)
查看“insert into .... select”http://dev.mysql.com/doc/refman/5.1/en/insert-select.html语法。 ......非常像其他答案所显示的那样。