我正在尝试自己练习使用 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', '[email protected]', '555-6666', '2002-06-24');
INSERT INTO students (id, first_name, last_name, email, phone, birthdate)
VALUES (2, 'Alice', 'Wonderland', '[email protected]', '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 个同名列;在你的情况下[id]。由于student_grades 表中的student_id 与students 表中的id 相同,因此您可以忽略后者。请参阅下面的查询。
SELECT sg.[id] ,
sg.[student_id] ,
sg.[test] ,
sg.[grade] ,
s.[first_name] ,
s.[last_name] ,
s.[email] ,
s.[phone] ,
s.[birthdate]
INTO TableA
FROM student_grades sg
JOIN students s ON sg.student_id = s.id;
因为这两个表都有字段名称“id”,所以您必须使用带有“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
CTE AS
(从 MIS754A 选择 A。*
LEFT JOIN MIS754B B ON A.[帐号]=B.[帐号])
从 CTE 选择*
与另一个表连接后如何命名和保存表