Access 2016-如果表中存在项目,则返回TRUE;如果缺少项目,则返回False 表格:课程表格:课程连接表:课程设置

问题描述

好,我有两个桌子。

1列出了一堆课程及其详细信息。 1列出了一堆课程及其关联。

我需要创建一个查询,该查询将列出课程名称,列出所有课程,然后指示该课程是否在课程中(TRUE)或不存在(FALSE)。

这是我到目前为止尝试过的。

因为我希望将所有课程与课程表进行比较,所以可以从外部加入课程表

计算每门课程的课程ID的数量-不起作用只能返回“ 1”值;并且只显示课程中的课程

发现两个表之间的差异-不起作用,仅显示没有课程的值。

尝试了IIF(IS NULL)计算-不能仅返回“ TRUE”值;并且只显示课程中的课程。

这应该很容易。有人可以帮我创建查询。基本上,我需要显示两个表中的所有值,然后显示相对于课程的值是NULL。

表1:

COURSE ID    COURSE NAME
1              ENGLISH
2              french
3              DRAWING
4              SKETCHING

表2

Curriculum ID          Curriculum NameID        Course ID
1                      Senior   (actually #)       1
2                      Senior                      3
3                      Junior                      1
4                      Junior                      2
5                      Junior                      3

结果

Curriculum Name          Course Name             In Curriculum
Senior                     English                True
Senior                     french                 False
Senior                     Drawing                True
Senior                     Sketching              False
Junior                     English                True
Junior                     french                 True
Junior                     Drawing                True
Junior                     Sketching              False

TJ

解决方法

由于您基本上在课程和课程之间存在多对多的关系(一门课程可能会出现在多个课程中,而一个课程可能会包含多个课程),所以我建议采用以下方式构造数据:

表格:课程

+-------+-----------+
| Co_ID |  Co_Desc  |
+-------+-----------+
|     1 | English   |
|     2 | French    |
|     3 | Drawing   |
|     4 | Sketching |
+-------+-----------+

表格:课程

+-------+---------+
| Cu_ID | Cu_Desc |
+-------+---------+
|     1 | Junior  |
|     2 | Senior  |
+-------+---------+

连接表:课程设置

+----------+----------+
| CC_Cu_ID | CC_Co_ID |
+----------+----------+
|        1 |        1 |
|        1 |        2 |
|        1 |        3 |
|        2 |        1 |
|        2 |        3 |
+----------+----------+

然后,您的查询相对容易构建,因为您可以通过以下方式组合使用交叉联接和左联接:

select 
    t.cu_desc as [Curriculum Name],t.co_desc as [Course Name],not cc_cu_id is null as [In Curriculum]
from
    (select * from curriculums,courses) t left join curriculum_courses u on
    t.cu_id = u.cc_cu_id and
    t.co_id = u.cc_co_id
order by
    t.cu_id,t.co_id

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...