我正在使用DatMart完成任何工具。我有一个表格,其中列出了学生的详细信息。
SystudentID Campus FirstNAme LastName
8 AICASA Ali Mehdi
9 AICASA Ashka Patel
10 AICASA Jane Iwuchukwu-Brooks
11 AICASA Helen Oredeko
学生可以注册以下多个课程。(不固定)
AdEnrollID SyStudentId Program Term
2671 9 AICASA Fall - 2009 AICASA
2537 11 AICASA Spring - 2009 AICASA
2634 8 AICASA Fall - 2010 AICASA
1853 10 AICASA Fall - 2008 AICASA
现在我正在组合这两个表,我想在一个表REP_student中创建我想要的所有细节。但它不应该给我两排。 (请参阅表结构)SQL中是否有任何表类型。 实现它的最佳方法是什么?
SystudentID Campus FirstNAme LastName AdEnrollID SyStudentId Program Term
由于
答案 0 :(得分:2)
您可以使用SQL连接。在这里,我假设你只想显示表1在表2中有相关记录的记录,因此使用INNER JOIN
。如果你想要一个不同的结果,你可以根据你的需要试用LEFT JOIN ,RIGHT JOIN OR FULL OUTER JOIN
。 / p>
SELECT S.SystudentID ,S.Campus,S.FirstNAme,S.LastName,C.AdEnrollID,C.SyStudentId,C.Program,C.Term
FROM table1_name S
INNER JOIN table2_name C
ON S.SystudentID = C.SystudentID;
如果您想要一个全新的表,我建议您单独创建一个新表,并在INSERT
查询中使用它来插入两个表的现有值。
INSERT INTO new_table_name(SystudentID,Campus,FirstNAme,LastName,AdEnrollID,New_SyStudentId,Program,Term)
SELECT S.SystudentID ,S.Campus,S.FirstNAme,S.LastName,C.AdEnrollID,C.SyStudentId,C.Program,C.Term
FROM table1_name S
INNER JOIN table2_name C
ON S.SystudentID = C.SystudentID;
您可能还需要考虑从新表和查询中删除其中一个SyStudentId,因为它很可能是重复值。我刚刚提到它,因为您已经提到过在输出表中需要它。