我有两个表,一个保存代码类型,另一个保存日历模板。每个模板都有开始日期和结束日期(星期一到星期日)
代码类型表
ID - Code Type - Name
1 --------- 1111 -------Monday
2 --------- 1112 -------Tuesday
3 --------- 1113 -------Wednesday
4 --------- 1114 -------Thursday
5 --------- 1115 -------Friday
6 --------- 1116 -------Saturday
7 --------- 1117 -------Sunday模板表
ID - Name - Startday - Endday
1 --- Work ----- 1111 -------1115
1 - Weekend - 1116 -------1117 现在,我想通过一条sql语句显示一个如下所示的表:
ID - Name - Startday - Endday
1 -- Work ----- Monday ------- Friday
1 - Weekend - Saturday ----- Sunday 我试图使用连接来实现,但是我只能连接代码类型,并且我想要实现的表中的每一行都有2个代码类型,所以它不起作用。我也尝试过通过CASE-statement来实现,但我不能为startday和endday创建两个CASE)
有谁知道如何做到这一点吗?
发布于 2019-04-02 18:42:05
您的"Code Type“表的格式不正确。这个答案假设codetype实际上是唯一的,因此它可以用于join。
表的设置应该使startday和endday链接到id列,而不是codetype列--假设id是表的主键。
假设codetype是唯一的,您只需要两个joins:
select t.id, t.name, cts.name as startdate, cte.name as endday
from template t join
codetype cts
on t.startday = cts.codetype join
codetype cte
on t.endday = cte.codetype;https://stackoverflow.com/questions/55472716
复制相似问题