根据其它表的列值将值插入表(Inserting values into a table based

2019-09-22 04:07发布

我想将数据插入到基于二次表的列的所有值的表。 例如

我有两个表

CREATE TABLE Table1 (
id int identity(1, 1) not null,
FullName varchar(100),
Age int,
CourseID int

CREATE TABLE Table2 (
id int identity(1, 1) not null,
Courses int

我想完成这样的事情..

insert into Table1 ('Auser',20,'And the list of Courses that I get from Table2')

有没有一种方法,我可以在SQL Server这样做呢?

Answer 1:

因此,对于一个新用户要插入所有可用的课程?

INSERT INTO Table1 
   SELECT 'Ausser', 20, t2.Courses 
   FROM Table2 t2; 

编辑:这里的小提琴: http://sqlfiddle.com/#!3/89470/1/0



Answer 2:

因为,你使用SQL Server 2008中,您可以使用MERGE语句 。 这里是你的榜样方案

CREATE TABLE Table1 
(
    Id int identity(1, 1) not null,
    FullName varchar(100),
    Age int,
    CourseID int
)

CREATE TABLE Table2 
(
    ID int identity(1, 1) not null,
    Courses int
);

INSERT INTO Table2  
SELECT 10 UNION ALL SELECT 20 UNION ALL 
SELECT 30 UNION ALL SELECT 40 UNION ALL SELECT 50;

--The Merge Query
MERGE Table1 AS t1
USING (SELECT * FROM Table2) AS t2
ON t1.CourseID= t2.Courses
WHEN NOT MATCHED THEN
INSERT(FullName,Age,CourseID)
VALUES('Ausser',20,t2.Courses);

SELECT *
FROM Table1

DROP TABLE Table1
DROP TABLE Table2

//结果

Id  FullName    Age CourseID
1   Ausser      20    10
2   Ausser      20    20
3   Ausser      20    30
4   Ausser      20    40
5   Ausser      20    50


文章来源: Inserting values into a table based on column values of another table