我有一个主表
类型 | 插槽时间 |
---|---|
A | 0700 |
A | 0730 |
B | 0600 |
B | 0630 |
我们可以使用具有现有逻辑的交叉连接方法:
INSERT INTO master (Type, SlotTime)
SELECT t1.Type, t2.SlotTime
FROM (SELECT DISTINCT Type FROM master) t1
CROSS JOIN (SELECT DISTINCT SlotTime FROM master) t2
WHERE NOT EXISTS (
SELECT 1
FROM master m
WHERE m.Type = t1.Type AND m.SlotTime = t2.SlotTime
);
上面使用的交叉连接生成类型和槽时间的所有可能组合。然后,我们使用存在逻辑来不插入表中已经存在的任何元组。