php - MySQL - 根据另一个表的列数从一个表中获取记录
问题描述
我有一个名为的表students
和一个名为 的表documents
。每个学生在表中可以有任意数量的文档条目documents
,但也可能没有文档条目。有些文件可能已经获得批准,有些则没有。
表 1:students
,表 2 documents
。student
PK isuser_id
和document
PK is document_id
,并且document
table 也有user_id
。document
表的列approved
可以包含是或否。所以这两个表由user_id
我怎样才能编写一个 MySQL 查询(或者更好,以 Code Igniter 的 Active Record 样式),它可以列出所有至少有 1 个未批准文档的学生?
解决方案
mysql> create table students (student_number int, student_first_name char(25), student_Last_name char(25));
查询正常,0 行受影响(0.34 秒)
mysql> create table documents (student_number int, document_name char(25), approved bool);
查询正常,0 行受影响(0.32 秒)
mysql> insert into students values (1,"F1","L1"),(2,"F2","L2"),(3,"F3","L3");
查询正常,3 行受影响(0.19 秒)记录:3 重复:0 警告:0
mysql> insert into documents values (1,"D1",0),(1,"D2",1),(3,"D3",1);
查询正常,3 行受影响(0.16 秒)记录:3 重复:0 警告:0
mysql> select * from students where student_number in (select student_number from documents where !approved);
+----------------+--------------------+------------ --------+ | 学生号 | 学生名字 | 学生姓氏 | +----------------+--------------------+------------ --------+ | 1 | F1 | L1 | +----------------+--------------------+------------ --------+ 1 行(0.02 秒)
推荐阅读
- jquery - css 转换是否会更改 div 的 jquery 可放置区域
- c - 关于 fmp4 编码,如何用 H264 帧填充 mdat 框?
- sql - 如何在 Oracle Express 中创建触发器或过程以自动执行表列中的值
- neo4j - neo4j 不包含多个标签
- flutter - 如何使 CupertinoActivityIndicator 成为每个布局的顶部?
- python - 嘿,我正在制作一个社交媒体应用程序,并想将帖子保存到我的数据库。但我不断收到错误
- python - 使用 PythonAnywhere 配置 WSGI(烧瓶工厂)
- mysql - 如何有效地检索同一张表中的相交值?
- html - 使用角材料在右侧显示侧面导航栏?
- flutter - Flutter TabBar:每次标签可见时更新标签(有状态的小部件)