插入到一组常量的SQL查询
问题描述:
似乎应该有一个这样的查询,但我想不出如何做到这一点。插入到一组常量的SQL查询
我有与由两个字段的复合主键的表,我想用数据来填充,
我可以做一个INSERT INTO从一个表,以填补了一半的钥匙,但我要填写的另一半与一组常数(0,3,5,6,9)等等
所以最终的结果是这样的
+--------------+
|AwesomeTable |
+--------------+
| Id1 | Id2 |
| 1 | 0 |
| 1 | 3 |
| 1 | 5 |
| 1 | 6 |
| 1 | 9 |
| 2 | 0 |
| 2 | 3 |
| ... | ... |
+--------------+
我有至于插入awesometable(id1,id2)选择id1,[需要一些东西]来自table1 [需要别的东西]
答
我有一个表2的主键
不,你不知道。一个表只能有一个主键。您可能是指复合主键。
我相信你想这样的:
INSERT
INTO awesometable (id1, id2)
SELECT t1.id1, q.id2
FROM table1 t1
CROSS JOIN
(
SELECT 0 AS id2
UNION ALL
SELECT 3
UNION ALL
SELECT 5
UNION ALL
SELECT 6
UNION ALL
SELECT 9
) q
,或者Oracle
:
INSERT
INTO awesometable (id1, id2)
SELECT t1.id1, q.id2
FROM table1 t1
CROSS JOIN
(
SELECT 0 AS id2
FROM dual
UNION ALL
SELECT 3
FROM dual
UNION ALL
SELECT 5
FROM dual
UNION ALL
SELECT 6
FROM dual
UNION ALL
SELECT 9
FROM dual
) q
答
如果我理解正确的话,也许你可以使用这样的事情:
insert into awesometable (id1, id2)
select id1, (select top 1 id2 from table2 where /*a condition here to retreive only one result*/)
from table1
对不起,我可能没有足够清楚,没有表2.这只是一组常量,也许你会称它为临时的能够。 – 2010-09-22 15:07:44