【发布时间】:2018-05-23 18:00:47
【问题描述】:
我有学生查找表
学生桌
Student id Student name
1 Sonu
2 Janu
3 Sameer
4 Shri
课程表
Course Name Student Id
JAVA 1,2,3
SQL 2,3
HTML 3,4
PHP 2,1
我有另一个表,即课程表,在该表中我只是输入带有逗号分隔值的学生 ID。现在我想使用课程表中的学生 ID 获取学生姓名,并且学生姓名应该与存储在课程表中的学生 ID 的顺序相同
结果应该是
Course Name Student Name
JAVA Sonu,Janu,Sameer
SQL Janu, Sameer
HTML Sameer,Shri
PHP Janu,Sonu
谁能帮忙解决这个问题
我的 sql 版本是:Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 2014 年 2 月 20 日 20:04:26 版权所有 (c) 微软公司 Windows NT 6.3(Build 9600:)(Hypervisor)上的开发人员版(64 位)
【问题讨论】:
-
你为什么非规范化你的数据?无论如何,如果你想要这些结果,你会想要split your values,加入,然后group concat。这将是一种方法,这些链接会将您带到您想去的地方。
-
这个数据模型有问题!!
-
没有有效的方法来做到这一点。只需修复数据结构——了解什么是联结/关联表。
-
我需要使用 ids,因为 ids 的名称将来可能会改变,但是无论我们想在哪里引用这个课程表,我们都需要显示学生姓名。我尝试使用拆分 id 并再次连接为学生姓名,但顺序与 id 的顺序不同。我也需要同样的订单。
-
请标记您的 sql-server 版本。
标签: sql sql-server tsql sql-server-2014