我正在与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
谢谢
您可以使用SQL JON加入。在这里,我假设您只想显示表1中具有相关记录的记录,因此使用INNER JOIN
。如果您想要其他结果,则可以根据需要尝试LEFT JOIN ,RIGHT JOIN OR FULL OUTER JOIN
。
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,因为它很可能是重复的值。在这里,我只是将其包含在内,因为您已经提到了它需要它在输出表中。