Select 使用一组常量对insert into进行SQL查询
似乎应该对此提出质疑,但我想不出怎么做 我有一个表,它有一个复合主键,由两个字段组成,我想用数据填充它们 我可以从一个表中插入来填充一半的键,但我想用一组常量(0,3,5,6,9)来填充另一半的键 所以最终结果是这样的Select 使用一组常量对insert into进行SQL查询,select,insert,sql,Select,Insert,Sql,似乎应该对此提出质疑,但我想不出怎么做 我有一个表,它有一个复合主键,由两个字段组成,我想用数据填充它们 我可以从一个表中插入来填充一半的键,但我想用一组常量(0,3,5,6,9)来填充另一半的键 所以最终结果是这样的 +--------------+ |AwesomeTable | +--------------+ | Id1 | Id2 | | 1 | 0 | | 1 | 3 | | 1 | 5 | | 1 | 6 | | 1
+--------------+
|AwesomeTable |
+--------------+
| Id1 | Id2 |
| 1 | 0 |
| 1 | 3 |
| 1 | 5 |
| 1 | 6 |
| 1 | 9 |
| 2 | 0 |
| 2 | 3 |
| ... | ... |
+--------------+
我已经尽可能地插入到awesometable(id1,id2)中,从table1[此处需要其他内容]中选择id1[此处需要其他内容]
我有一张有两个主键的桌子
不,你没有。一个表只能有一个主键。您可能指的是复合主键
我相信你想要这个:
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 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
如果我理解正确,也许你可以用这样的方式:
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。这只是一组常量,也许你可以称之为临时表。对不起,我可能不够清楚,没有表2。这只是一组常量,也许你可以称之为临时表。