首页 > 解决方案 > 如何以指定格式从多对多关系中提取数据以用于使用 SQL 的复选框?

问题描述

ll 表结构如下图。 表结构

例如,我想要一个学生的注册详细信息,假设 ID 为 3 的学生。

我希望查询结果采用上述格式。 预期产出

我打算使用 true / false 或 0 , 1 列链接到前端的复选框列表。这样,学生可以轻松地选中/取消选中自己注册的课程。

更多信息

我的项目将在 ASP.Net MVC 中创建。所以,我也可以使用 LINQ 查询。假定没有注释的标准模型代码。

编辑: 我没有写我的尝试,因为我根本没有足够远来在这里发布它。但在这里

SELECT COURSE.CNAME, 0
FROM COURSE
union
SELECT COURSE.CNAME, ENROLLMENT.EID
FROM COURSE INNER JOIN ENROLLMENT
ON COURSE.CID = ENROLLMENT.CID
INNER JOIN STUDENTS
ON STUDENTS.SID = ENROLLMENT.SID
WHERE STUDENTS.SID = 3

标签: sqlsql-serverasp.net-mvclinqjoin

解决方案


我想你想要一个left join. 这会给你你想要的结果 student 3

select
    e.eid,
    c.cname,
    c.cid,
    case when e.eid is null then 0 else 1 end as isenrolled
from course c
left join enrollment e on e.cid = c.cid and e.sid = 3
order by is_enrolled desc, e.eid, c.cid

推荐阅读