SQL 帮助:Select 语句连接一对多关系

2023-11-28

例如我有两张桌子。第一个表是学生,第二个表是学生正在学习的课程。如何使用 select 语句以便我可以看到两列学生和课程,以便课程以逗号分隔。

Thanks.


假设您使用的是 SQL Server 2005:

这应该可以满足您的需求 - 显然可以根据需要替换字段:

出于演示目的,请考虑以下两个表结构:

Students(
  STU_PKEY Int Identity(1,1) Constraint PK_Students_StuPKey Primary Key,
  STU_NAME nvarchar(64)
)

Courses(
  CRS_PKEY Int Identity(1, 1) Constraint PK_Courses_CrsPKey Primary Key,
  STU_KEY Int Constraint FK_Students_StuPKey Foreign Key References Students(STU_PKEY),
  CRS_NAME nvarchar(64)
)

现在这个查询应该可以完成您想要的工作:

Select  s.STU_PKEY, s.STU_NAME As Student,
        Stuff((
            Select  ',' + c.CRS_NAME
            From    Courses c
            Where   s.STU_PKEY = c.STU_KEY
            For     XML Path('')
        ), 1, 1, '') As Courses 
From    Students s
Group By s.STU_PKEY, s.STU_NAME

比当前接受的答案简单得多......

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

SQL 帮助:Select 语句连接一对多关系 的相关文章

  • 在 Python 中将 int 转换为字符串

    我希望能够生成多个名为 fileX txt 的文本文件 其中 X 是某个整数 for i in range key filename ME i txt Error here Can t concat a string and int fil
  • 添加日期时间和时间

    服务器 SQL Server 2012 SP1 开发者版 Code declare datetime datetime 1900 01 01 00 00 00 000 declare time time 11 11 11 select da
  • 我应该在删除数据之前禁用聚集索引吗?

    我知道这已经像任何事情一样被讨论过 但找不到我可以接受的可靠答案 假设我有一个有100亿条记录的表 需要删除where子句中带有标识列的记录 我应该选择哪个选项 选项1 禁用索引 这将节省删除后重新排列索引的开销 但会花费更长的时间来搜索需
  • mssql 的 UUID 疯狂

    我的数据库条目有一个 UUID 及其值 使用 Microsoft SQL Server Management Studio 提取 CDF86F27 AFF4 2E47 BABB 2F46B079E98B 将其加载到我的 Scala 应用程序
  • 即使在不活动状态下,Hangfire 也会继续运行 SQL 查询

    我正在开发一个 ASP net MVC 5 网站 并使用 Hangfire 来安排一些任务 在本例中每 3 分钟一次 我知道一个事实是 运行这样的任务 以及与之相关的数据库查询 只需要几秒钟 我面临的问题是 Hangfire 似乎让我的 S
  • 有没有办法将应用程序上下文与非 Sybase DB 服务器中的数据库连接进行通信(类似于 Sybase 中的 set_appcontext)?

    Sybase 有一种让应用程序进行通信的方法 上下文 数据 http manuals sybase com onlinebooks group as asg1250e sag Generic BookTextView 38861 hf 0
  • SQL Server 数据归档解决方案

    我正在寻找一种解决方案来存档数据库中存在的数据 我的数据库是 SQL Server 2008 大约有 250 个表 我搜索网络并找到以下链接 http www dbazine com sql sql articles charran13 h
  • SQL Server到Mysql迁移(使用Mysql Workbench)数据传输错误

    我正在使用 Mysql Work bench 6 3 将数据库从 MS Sql server 2008 迁移到 Mysql 在 批量数据传输 期间出错并出现以下警告 这种情况仅发生在像 varchar char 这样的列类型上 当我尝试使用
  • 合并 Pandas 中的多列(不包括 NaN)

    我的示例 df 有四列NaN价值观 目标是连接所有行 同时排除NaN价值观 import pandas as pd import numpy as np df pd DataFrame keywords 0 a np nan c keywo
  • 找出会话的默认 SQL Server 架构

    我需要知道正在执行某些 DDL 的 SQL 脚本中当前的默认架构是什么 我不需要设置架构 但我确实需要将对它的引用 名称或 ID 放入变量中 该脚本可能以 Windows 登录身份运行 因此以下内容还不够 SELECT name defau
  • 删除 Sql 服务器中最后一次出现特殊字符之前的子字符串

    我想删除最后一次出现句点之前的子字符串 查询应该转换r k Lee Brown to Lee Brown 所以 基本上我需要最后一个点之前的子字符串 并将其替换为 尝试这个 SELECT RIGHT str CHARINDEX REVERS
  • SQL Server 中不需要的日期时间舍入

    我遇到了一些看起来很奇怪的事情 SQL Server 似乎正在舍入一些DateTime当我将它们保存到时 值不合适datetime列 我怀疑我错过了一些东西 但我找不到它 我正在使用 NET 4 0 针对 SQL Server 2008 运
  • 如何在 SQL Server 会话中设置自动提交?

    如何在 SQL Server 会话中设置自动提交 您可以通过将implicit transactions设置为OFF来打开自动提交 SET IMPLICIT TRANSACTIONS OFF 当设置为ON时 返回隐式事务模式 在隐式事务模式
  • 将 SQL 中的数据存储在数组中

    我正在尝试将 sql 数据库中的数据存储到数组中 目前我有这个 query mysql query SELECT FROM InspEmail WHERE Company LIKE company while row mysql fetch
  • 删除 SQL Server 上的所有扩展属性

    如何以可编写脚本的方式删除 SQL Server 上的所有扩展属性 如果您想要一个能够一次性删除所有扩展属性的脚本 请使用 Jamie Thomson 创建的脚本 该脚本将为所有扩展属性生成删除 您可以从这里下载article http s
  • SQL COUNT(*) 返回错误答案

    以下脚本应返回部门名称以及这些部门中的员工人数 营销 行政和销售部门有 0 名员工 但返回值不是 0 而是 1 我怎样才能纠正它 select Department Departments DepartmentID count as Num
  • SQL限制数据库中的最小值和最大值

    CREATE TABLE TBL CD CDnr int identity 1 1 CDTitel nvarchar 80 NOT NULL CDduur int CDprijs smallmoney 所以我正在创建这个表 有什么方法可以将
  • 无法在 SSIS 查找中选择 ODBC 源

    我正在创建一个用于更新 SQL Server 中的表的包 要更新的详细信息是从 MySQL 数据库获取的 为此 我使用 ODBC 连接管理器连接到 MySQL 但此 ODBC 连接管理器未在 OLE DB 连接管理器中列出 我可以在 Too
  • 获取SQL中前2个特殊字符之间的字符

    我有数据在sql 只是要注意 SQL STudio is the IDE like data a 10 b c a 1 b c 我想获取前两个符号之间的数据 Output 10 1 这就是我的方法 SELECT CAST
  • 更新查询时 ios 中出现“数据库锁定”错误

    我正在使用下面的代码更新查询 using sqlite 但我越来越 database is locked error 我尝试搜索一些 SO 链接 建议关闭数据库 但我再次执行此操作时遇到相同的错误 我已经提到过代码中出现错误的地方 cons

随机推荐

  • 如何为“日期”创建索引?

    如何为 日期 创建索引 CentOS7 MongoDB服务器版本 3 4 2 db animals createIndex date ok 0 errmsg The field key must be an object but got s
  • web组件shadow dom中的rem

    我们知道我们可以设置font size on html as the rem基于普通 DOM 节点 我使用这个技巧使我的应用程序的字体更加灵活 可以通过 js 动态更改 然而 当我创建一个Web组件时 我发现rem即使我尝试添加样式 影子
  • GWT-RPC 与 HTTP 调用 - 哪个更好?

    我正在评估使用 GWT RPC 进行的调用和HTTP调用 我的 appln 服务作为 Java servlet 托管 我当前使用 HTTPProxy 连接从它们获取数据 我希望将它们转换为 GWT RPC 调用 如果这能带来性能改进 我想知
  • 云端点收集参数

    我正在使用 Google App Engine Cloud Endpoints 并且正在尝试接收集合参数 不确定我是否能做到这一点 我知道我可以返回列表或任何集合 This public List
  • 选择悬停项目之前的所有项目

    我有一个带有 5 个内联星的容器 我需要的是当你将鼠标悬停在一颗星星上时 该星星和它之前的所有星星都会获得不同的背景 我使用的是精灵 所以我改变了背景位置 Markup div class wpr span class star span
  • Gson:直接将String转换为JsonObject(无POJO)

    似乎无法弄清楚这一点 我正在尝试在 GSON 中进行 JSON 树操作 但在转换为之前 我不知道或没有 POJO 来将字符串转换为JsonObject 有没有办法直接从String to JsonObject 我尝试过以下 Scala 语法
  • Android 从资源中获取颜色列表

    我有一个颜色列表
  • 是否可以修改 beforeSend 回调中的 XMLHttpRequest 数据?

    是否可以通过修改 beforeSend 回调中的 XMLHttpRequest 对象来修改 Ajax 请求中发送的数据 如果是的话我该怎么做 是的 你可以修改它 签名beforeSend is actually 在 jQuery 1 4 中
  • catch事务连接后的SqlTransaction为null

    我有一个循环 我用不同的参数值调用存储过程 下次通话cmd ExecuteNonQuery 我使用事务来保存全部或回滚 并使用 checkBox2 始终保存 我发现一个问题 但找不到解决方案 在第一个问题之后 当 catch 块被触发时 事
  • CSS 过渡和 jQuery 淡入淡出之间的冲突

    我正在尝试创建一个带有小菜单的瓷砖墙display none一些基于其类别的元素 在我的 CSS 中 我有 CSS 转换 这会导致fadeIn and fadeOut不工作 如果我添加一个时间 该元素将需要那么长时间才能消失 但实际上并没有
  • VB6 Timer 控件是否创建单独的线程?

    有VB6吗Timer控件启动时创建一个单独的处理线程 VB6 定时器控件不是某种在后台线程上运行的忙等待循环 他们根本就没有真正 跑 据我所知 当您设置 Enabled True 或更改 Interval 如果它是 0 时 控件会调用 Se
  • 这是导入驻留在任意文件夹中的 python 脚本的正确方法吗?

    此片段来自较早的答案 大约有一年了 答案没有被接受 我是 Python 新手 我发现系统路径真的很痛苦 我在不同目录中的脚本中编写了一些函数 我希望能够将它们导入到新项目中 而不必费力 这是片段 def import path fullpa
  • 针对 Mac OS X 10.8 之前的目标进行编译时,Base.lproj/MainMenu.xib 不可用

    我对 Cocoa 开发非常陌生 我刚刚创建了 Cocoa 项目Xcode 5 我变了部署目标从 10 8 到 10 6 现在我收到这个警告 path to my project Base lproj MainMenu xib 在以下情况下不
  • SpringMVC Websockets 使用 Spring Security 进行用户身份验证消息传递

    我看过一些关于这个问题的帖子 但似乎没有一个真正直接回答这个问题 背景 我安装了 spring security 工作正常 并且在应用程序的其他部分顺利运行 我的用户名是 开发者 在 Java 7 Glassfish 4 Spring 4
  • 为什么在 hibernate-core 6.0.2 中删除了对 javax.persistence-api 的依赖

    将 hibernate core 从 5 6 9 Final 更新到 6 0 2 Final 后 我的 javax persistence Entity 导入无法解析 我发现在 hibernate core 6 0 2 Final 中删除了
  • 使用 Mono 运行 F# 代码

    我安装了 F 2 0 0 并使用 mono 2 8 let rec fib n match n with 1 2 gt 1 n gt fib n 1 fib n 2 let n 40 let x fib n printfn d x 我使用
  • 检测 macOS 鼠标光标下的颜色

    我想知道如何获取 OS X macOS 鼠标指针当前所在像素的颜色 我编写了一个控制台应用程序 所以我没有可以覆盖的窗口或其他东西 当我构建并运行该程序时 它应该为我提供鼠标指针当前所在颜色的控制台日志 那可能吗 Using 这个问题和答案
  • 如何向 iframe 中的 p 元素添加点击事件(使用 jQuery)

    如何添加点击事件 p iframe 中的元素 使用 jQuery 有一个特殊的 jQuery 函数可以做到这一点 contents 请参阅示例了解其工作原理 p
  • 是否可以使用 fgets 或 gets_s 正确读取空字符?

    假设我想读取stdin 并让用户输入包含空字符的字符串 这可以通过字符串输入函数实现吗fgets or gets s 或者我必须使用例如fgetc or fread Someone here想做这个 For fgets yes fgets被
  • SQL 帮助:Select 语句连接一对多关系

    例如我有两张桌子 第一个表是学生 第二个表是学生正在学习的课程 如何使用 select 语句以便我可以看到两列学生和课程 以便课程以逗号分隔 Thanks 假设您使用的是 SQL Server 2005 这应该可以满足您的需求 显然可以根据