mysql语句 实验题目6 查询2019年春季开课,但2018年不开课的课程的编号。
时间: 2024-03-26 21:38:13 浏览: 41
可以使用子查询的方式来实现这个查询:
```
SELECT DISTINCT cno
FROM course
WHERE cterm = '2019春季' AND cno NOT IN (
SELECT cno
FROM course
WHERE cterm = '2018秋季'
);
```
其中,外部查询筛选出了2019年春季开课的课程,而子查询中筛选出了2018年秋季开课的课程编号,最终使用 NOT IN 进行排除,得到了符合条件的课程编号。
相关问题
mysql按年分表的查询
按年分表的查询是指在MySQL数据库中,将数据按照年份进行分表存储,并在查询时根据年份选择相应的表进行查询。这样可以提高查询效率和管理数据的灵活性。
在实际操作中,可以使用动态表名的方式来实现按年分表的查询。可以通过在表名中添加年份后缀或者使用表名的变量来实现。例如,可以使用类似以下的方式生成指定年份的表名:
$table = "table_" . date('Y');
然后,可以使用生成的表名进行查询操作。例如,可以使用以下的方式查询指定年份的数据:
$sql = "SELECT * FROM " . $table . " WHERE dateline BETWEEN '开始日期' AND '结束日期'";
其中,'开始日期'和'结束日期'是具体的日期范围,可以根据实际需求进行替换。
需要注意的是,在进行按年分表的查询时,需要确保每个年份对应的表都存在,并且表结构一致。可以使用自动化脚本或者定时任务来创建和管理分表。
综上所述,按年分表的查询可以通过动态生成表名的方式来实现,从而实现按年份查询数据的需求。
#### 引用[.reference_title]
- *1* *2* [mysql按月分表, 组合查询](https://blog.csdn.net/weixin_28703489/article/details/113239557)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [mysql分表+查询](https://blog.csdn.net/weixin_39611937/article/details/113343938)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
mysql查询选课人数大于等于3人的课程编号、课程名称、人数。
可以使用以下SQL语句实现:
```
SELECT course.cno, course.cname, COUNT(*) AS num
FROM sc, course
WHERE sc.cno = course.cno
GROUP BY course.cno, course.cname
HAVING COUNT(*) >= 3;
```
其中,使用了两个表格:选课表sc和课程表course。这两个表格通过课程编号cno关联起来,筛选出选课人数大于等于3人的课程,最后按照课程编号和课程名称分组,统计人数。