SQL-如何在查询表被另一个表连接后命名并保存它?

时间:2017-07-22 21:23:04

标签: sql-server

我正在尝试自己练习使用Microsoft SQL Server Management Studio 2014,我似乎无法理解如何在表被另一个表加入后命名和保存表。我试图在网上找到类似的例子,但它们要么没有用,要么就是我的代码出错了。

以下是我加入的表的代码:

CREATE TABLE students (id INTEGER PRIMARY KEY, first_name TEXT, last_name 
TEXT, email TEXT, phone TEXT, birthdate TEXT);

INSERT INTO students (id, first_name, last_name, email, phone, birthdate) 
VALUES (1, 'Peter', 'Rabbit', 'peter@rabbit.com', '555-6666', '2002-06-24');

INSERT INTO students (id, first_name, last_name, email, phone, birthdate) 
VALUES (2, 'Alice', 'Wonderland', 'alice@wonderland.com', '555-4444', '2002-
07-04');

CREATE TABLE student_grades (id INTEGER PRIMARY KEY, student_id INTEGER, 
test TEXT, grade INTEGER);

INSERT INTO student_grades (id, student_id, test, grade) VALUES (1, 1, 
'Nutrition', 95);

INSERT INTO student_grades (id, student_id, test, grade) VALUES (2, 2, 
'Nutrition', 92);

INSERT INTO student_grades (id, student_id, test, grade) VALUES (3, 1, 
'Chemistry', 85);

INSERT INTO student_grades (id, student_id, test, grade) VALUES (4, 2, 
'Chemistry', 95);

这是联接的表格代码:

SELECT * 
FROM student_grades
JOIN students 
ON student_grades.student_id = students.id

我已经成功地将这两个表连接在一起,但是我似乎在尝试命名并保存这个名为TableA的新连接表时遇到了麻烦。它是这样的:

SELECT * INTO TableA
FROM student_grades
JOIN students 
ON student_grades.student_id = students.id

我从结果得到的全部是:

Column names in each table must be unique. Column name 'id' in table 
'TableA' is specified more than once.

我不知道为什么会显示此错误。我的语法是否正确,我使用的名称不正确,或者我的语法是否完全不正确?感谢所有可能的回复。

2 个答案:

答案 0 :(得分:0)

表中不能有2个具有相同名称的列;在你的情况下[id]。由于来自student_grades表的student_id与来自学生表的id相同,因此您可以忽略后者。请参阅下面的查询。

.append()

答案 1 :(得分:0)

因为这两个表的字段名称为" id"所以你必须使用别名和#34; id"字段如下:

SELECT students.id as studentId, first_name, last_name, email, phone, birthdate
,student_grades.id as gradeId, test, grade INTO TableA
FROM student_grades
JOIN students 
ON student_grades.student_id = students.id