1

我在没有任何工具的情况下与 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

谢谢

4

1 回答 1

2

您可以为此使用 SQL 连接。在这里,我假设您只想显示表 1 在表 2 中有相关记录的记录,因此使用. 如果您想要不同的结果,您可以根据需要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 之一,因为它很可能是重复值。这里我只是将它包括在内,因为您已经提到您需要在输出表中使用它。

于 2017-09-25T11:33:11.670 回答