mysql-基于另一个表的列计数从一个表中获取记录

qgelzfjb  于 2021-06-24  发布在  Mysql
关注(0)|答案(12)|浏览(272)

我有一张table叫 students 还有一张table叫 documents . 每个学生都可以有任意数量的文档条目 documents 表,但也可能没有文档条目。有些文件可能已经被批准了,有些没有。
表1: students ,表2 documents . student pk是 user_id 以及 document pk是 document_id ,和 document 表有 user_id 也在里面。 document 表有列 approved 它可以包含yes或no,所以这两个表通过 user_id 我如何编写一个mysql查询(或者更好地说,使用代码点火器的activerecord样式)来列出至少有一个未批准文档的所有学生?

yjghlzjz

yjghlzjz2#

select distinct students.name from students join documents on 
students.user_id=documents.user_id where documents.user_id is No
r6vfmomb

r6vfmomb3#

------+| 1 | f1 | l1 |+

igsr9ssn

igsr9ssn4#

---------+|学生|学号|学生|姓|+

b5lpy0ml

b5lpy0ml7#

------+一行(0.02秒)

relj7zay

relj7zay10#

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);

相关问题