如果多个ID从一张表指向另一张表,如何连接三个表或三个以上的表?

2024-04-18

我对加入感到困惑假设我这里有三个表学生表、课程表、教师表

“学生”表

Std_Id    Std_Name    Course_Id   Teacher_Id 
1         Amit         2           1
2         Yogesh       1           1
3         Pravin       3           2 
4         Nilay        1           3 
5         Abhijit      2           2
6         Vishal       2           4
7         Ramesh       3           3
8         Vijay        3           4
9         Ben          1           3
10        Vinod        2           4

“课程”表

Course_Id   Course_Name   Std_Id   Teacher_Id
1           JAVA           1        3
2           C#             1        3
3           C++            3        1
4           SAP            2        2
5           PYTHON         2        1
6          JAVASCRIPT      3        2

“老师”表

Teacher_Id  Teacher_Name  Std_Id  Course_Id
1           Roy            1       1
2           John           2       1
3           Ben            1       3 
4           Renu           2       3
5           Ramesh         1       3

正如你所看到的,我这里有三个表,所以现在我想查看有课程和教师的学生,所以让我们在学生表中查找,我们有 Std_Id、Course_Id、Teacher_Id,在课程表中我们有 Course_Id, Std_Id,Teacher_Id,在教师表中我们有 Teacher_Id,Std_Id,Course_Id 所以在这里我想加入三个表,正如我所说的,我想向拥有课程和教师的学生显示,那么这里应该使用哪一列,在这里我没有给出任何参考键,如何连接三个表,我在这里给出查询

select Std_Name,Course_Name,Teacher_Name 
from   Student
inner join Course
        on ????????????????????????????.????????????_????????=????????????????????????.????????????????????????_???????? 
        or ????????????????????????????.????????????????????????_????????=????????????????????????.????????????_???????? 
        or ????????????????????????????.????????????????????????_????????=????????????????????????.????????????????????????_???????? 
        or ????????????????????????????.????????????_????????=????????????????????????.????????????_????????
inner join Teacher
        on ????????????????????????.????????????????????????_????????=????????????????????????????.????????????????????????????_???????? 
        or ????????????????????????.????????????????????????????_????????=????????????????????????????.????????????????????????_???????? 
        or ????????????????????????.????????????????????????????_????????=????????????????????????????.????????????????????????_???????? 
        or ????????????????????????.????????????????????????????_????????=????????????????????????????.????????????????????????????_????????

那么这里应该使用哪个公共列来连接三个表,请告诉我,请给我答案。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果多个ID从一张表指向另一张表,如何连接三个表或三个以上的表? 的相关文章

  • SqlBulkCopy 在单个事务下插入多个表或在实体框架和经典 Ado.net 之间进行批量插入操作

    我的应用程序运行时需要插入两个表 假设我有如下表格 tbl FirstTable 和 tbl SecondTable 我的问题是数据量 我需要向 tbl FirstTable 插入超过 10 000 行 向 tbl SecondTable
  • Sql Server 2005 将列名放在方括号中

    我最近将数据库从 Sql Server 2000 迁移到 Sql Server 2005 在表设计器中 它坚持将方括号放在名为 Content 的列周围 我在 Sql Server 的保留字列表中没有看到 Content 所以我不明白它为什
  • SQL SERVER 和 SET ANSI_NULLS ON、SET QUOTED_IDENTIFIER ON

    所以我在创建脚本时一直盲目地使用ansi nulls on quoted identifier on 因为sqlserver在编写对象脚本时会自动生成它们 我真的没有时间关心这些琐碎的废话 但我想必须提出这些问题 鉴于这些是推荐的设置 是否
  • 在 SQL Server 中增加一个整数

    菜鸟问题在这里 每次我更改 SQL Server 2008 R2 表中的某个记录时 我都想增加一条 RevisionId 记录 为此 我使用以下语法 UPDATE TheTable SET RevisionId SELECT Revisio
  • 在 OLAP 多维数据集中,过滤属性时总计错误

    用户尝试检查每个销售人员的销售额 样本数据 Salesperson Sales Amount 001 1000 002 500 003 750 Grand Total 2250 看起来不错 但我们有以下层次结构Company gt Clas
  • 如何在sql server中获取从当前日期时间到过去7天的过去7天的数据

    您好 我正在使用 pentaho 将表 A 数据从 sql server 加载到 mysql 加载数据时 我只需要从 sql server A 表获取最近 7 天的数据到 mysql 在sql server中createddate列数据类型
  • MySQL Select 查询 - 仅获取值的前 10 个字符

    好的 这就是问题所在 我有一个包含一些列的表 主题 是其中一列 无论 主题 字段包含一个包含 100 个字母的字符串 我都需要从 主题 字段获取前 10 个字母 例如 Table tbl 列 id subject value SQL查询 S
  • 使用用户定义的表类型在 SQL 中插入和更新

    以下是我创建的新数据类型 CREATE TYPE dbo UpdateHotelTableType AS TABLE ID int NULL HotelID int NULL FromDate datetime NULL 以下是我使用上述数
  • 无法在 Sql Server 中运行分析功能

    在 Oracle 中它运行良好 oracle的查询如下 SELECT TEAM ID LEVEL ID FF ID MODULE ID TERR ID MERGE KEY count distinct TERR ID over partit
  • 使用实体框架如何在没有一个庞大查询结果集或数百个小型查询的情况下创建嵌套对象?

    我使用 EF 填充对象 然后在业务层代码中与之交互 这些对象有多个级别 但我们首先将其简化为典型的主从示例Order and OrderLine 假设我需要检索 50 个订单 每个订单大约有 100 个订单行 并且我需要所有这些数据 在 E
  • ALL 的 SQL 参数

    我想知道SQL中是否有一个参数适用于所有 不是 例如 我现在正在编写一个搜索表 如果用户不在文本框中输入某些内容 则意味着忽略该特定参数并显示该字段的所有内容 我知道您可以为每种情况创建单独的 OLEDB 或 SQL 命令 并且它会起作用
  • SQL DROP TABLE 外键约束

    如果我想像这样删除数据库中的所有表 它会处理外键约束吗 如果没有 我该如何处理 GO IF OBJECT ID dbo Course U IS NOT NULL DROP TABLE dbo Course GO IF OBJECT ID d
  • MySQL 主键是否已经处于某种默认顺序

    我刚刚在一个我刚刚开始使用的系统中偶然发现了几行我并不真正理解的代码 该系统有一个大表 可以保存大量具有唯一 ID 的实体 并在不再需要时将其删除 但绝不会重用它们 所以桌子看起来像这样 id info1 info2 info3 1 foo
  • SQL Server - 评估期已过期错误

    昨天我的电脑上安装的 SQL Server 2014 试用期结束了 我决定使用 Express 版本并卸载 SQL Server 2014 并安装 Express 版本 但是当我打开SQL Server Management Studio时
  • SQLPLUS 保存到文件

    我必须为我的数据库类使用 SQLPLUS 我们的第一个作业是简单的保存 我按照说明进行操作 我正在使用 PuTTY 访问 sqlplus 在本练习中使用以下 SQL 命令 并尝试使用 SAVE 和 SPOOL 命令将 SQL 命令和输出保存
  • 无法绑定多部分标识符

    我在 SO 上看到过类似的错误 但我找不到解决我的问题的方法 我有一个 SQL 查询 例如 SELECT DISTINCT a maxa b mahuyen a tenxa b tenhuyen ISNULL dkcd tong 0 AS
  • 用索引更新表太慢

    我正在观察我们应用程序的实时系统上的探查器 我发现我们定期 每秒 运行一条更新指令 速度相当慢 每次大约需要400ms 查询包含此更新 这是缓慢的部分 UPDATE BufferTable SET LrbCount LrbCount 1 L
  • 如何根据某些条件跳过 MSSQL 游标中的一行(迭代)?

    如何根据某些条件在 MSSQL 游标中跳过一行 迭代 我有一个可迁移数千条记录的 DTS 并且根据某些条件 某些记录不需要迁移 因为它们是重复的并且想要跳过这些记录 知道如何在 MSSQL Cursor 中完成此操作吗 我想最简单的方法是在
  • 如何从 T-SQL 中的“/”分隔字符串中获取几乎最后一个子字符串?

    如果我有一个由用 字符分隔的其他字符串 xxx xxx xxx xxxx 组成的字符串 如何使用 t sql 获取最后一个和几乎最后一个 最后一个之前的 部分 它可能应该是 charindex 和 right 的某种组合 declare s
  • 将列从日期转换为日期时间

    我有一个名为Lastmodified 数据类型为Date 但本来应该是DateTime 有没有办法转换列 当我使用 SQL Server Management Studio 的 设计 功能时 出现以下错误 不允许保存更改 您所做的更改需要以

随机推荐