Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Select 使用一组常量对insert into进行SQL查询_Select_Insert_Sql - Fatal编程技术网

Select 使用一组常量对insert into进行SQL查询

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

似乎应该对此提出质疑,但我想不出怎么做

我有一个表,它有一个复合主键,由两个字段组成,我想用数据填充它们

我可以从一个表中插入来填充一半的键,但我想用一组常量(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)中,从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。这只是一组常量,也许你可以称之为临时表。