SQL插入到select查询中

时间:2014-08-23 19:01:27

标签: sql sql-server select insert

我有2张桌子。

Attendance表包含2列,Records表包含1列

+----------------------+
|       Attendance     |
+----------------------+
| EmployeeID   | Hours |
+----------------------+ 

+--------------+
|   Records    |
+--------------+
| EmployeeID   |
+--------------+
|     1        |
|     2        |
|     3        |
+--------------+ 

我想要一个查询,它会将employeeID表中的所有Records插入EmployeeID表格中的AttendanceHours列中的值为8。

像这样:

+----------------------+
|       Attendance     |
+----------------------+
| EmployeeID   | Hours |
|----------------------|
|      1       |   8   |
|      2       |   8   |
|      3       |   8   |
+----------------------+

我无法理解我搜索过的代码,所以我最终会问:)

顺便说一句,我使用的是SQL Server。

2 个答案:

答案 0 :(得分:1)

最近,我发了一个你想要的查询。

INSERT INTO Attendence (EmployeeID, Hours) 
    SELECT EmployeeID, 8 
    FROM Records 
    WHERE EmployeeID > 0

WHERE条件适用于SELECT,不适用于INSERT INTO。此查询会将所有EmployeeID复制到Attendence表,其中EmployeeID大于0

SELECT EmployeeID, 8 FROM Records

将返回类似

的内容
(1,8),(2,8),(3,8)

答案 1 :(得分:0)

只需使用:

INSERT INTO Attendance (EmployeeID, Hours) 
    SELECT EmployeeID, 8 FROM Records;