基于逗号分隔值连接表

md *_*hid 4 sql-server

如何连接两个表,其中一个表在一列中有多个逗号分隔值,引用id另一列?

第一桌

Name    | Course Id
====================
Zishan  | 1,2,3                                           
Ellen   | 2,3,4                
Run Code Online (Sandbox Code Playgroud)

第二张桌子

course id | course name 
=======================
   1      |  java
   2      |  C++
   3      |  oracle
   4      |  dot net
Run Code Online (Sandbox Code Playgroud)

Arv*_*rvo 13

也许这个丑陋,我没有检查结果:

select names.name, courses.course_name
from names inner join courses
    on ',' + names.course_ids + ',' like '%,' + cast(courses.course_id as nvarchar(20)) + ',%'
Run Code Online (Sandbox Code Playgroud)

  • 尽管这是一个丑陋的黑客,我喜欢这是一种非常简单的方法来获得理想的结果.对于那些没有规范化数据库模式选项的人来说,这是一个很好的解决方法. (2认同)