sqlite show 1 and 0 if record exists or not 工作
sqlite show 1 and 0 if record exists or not doesn't work
我想更进一步
所以,假设我们有一些学生在特定时间段参加某些课程,我们得到那些 tables
其中粗体字段是主键
In attends table, attendsId PK,
(stRegNum, courseCode,periodId) FK
对于 ID = 00001 的 学生 我想显示所有参加过的课程,前面有 1,没有参加的课程有 0。像这样
我创建了一个查询以查看其工作原理
select (
case when exists(
select 1
from course
where attends.stRegNum = '00001'
group by course.courseCode
)
then 1
else 0
end
) as hh, *
from course left join attends on course.courseCode = attends.courseCode
我明白了
这显然是错误的。我知道 left join 搞砸了,但我尝试了一切,我无法获得预期的结果。
有人能告诉我我哪里做错了吗?如何解决?提前谢谢你。
PS: 我不太确定标题。如果您有更好的想法,请提出建议!
对于学生“00001”,您可以通过首先选择所有课程然后加入参加者来查看他们参加了哪些课程table,用 1 标记 00001 参加的所有课程:
select distinct
course.courseCode
,case when attends.attendsId is not null then 1 else 0 end as attendedCourse
from course
left join attends
on course.courseCode = attends.courseCode
and attends.stRegNum = '00001'
我想更进一步
其中粗体字段是主键
In attends table, attendsId PK, (stRegNum, courseCode,periodId) FK
对于 ID = 00001 的 学生 我想显示所有参加过的课程,前面有 1,没有参加的课程有 0。像这样
我创建了一个查询以查看其工作原理
select (
case when exists(
select 1
from course
where attends.stRegNum = '00001'
group by course.courseCode
)
then 1
else 0
end
) as hh, *
from course left join attends on course.courseCode = attends.courseCode
我明白了
这显然是错误的。我知道 left join 搞砸了,但我尝试了一切,我无法获得预期的结果。
有人能告诉我我哪里做错了吗?如何解决?提前谢谢你。
PS: 我不太确定标题。如果您有更好的想法,请提出建议!
对于学生“00001”,您可以通过首先选择所有课程然后加入参加者来查看他们参加了哪些课程table,用 1 标记 00001 参加的所有课程:
select distinct
course.courseCode
,case when attends.attendsId is not null then 1 else 0 end as attendedCourse
from course
left join attends
on course.courseCode = attends.courseCode
and attends.stRegNum = '00001'