MySQL - получение записей из одной таблицы на основе количества столбцов другой таблицы - PullRequest
0 голосов
/ 29 июня 2018

У меня есть таблица с именем students и таблица с именем documents. У каждого учащегося может быть любое количество записей документов в таблице documents, но также может не быть записей документов. Возможно, некоторые документы были утверждены, другие нет.

Таблица 1: students, Таблица 2 documents. student PK - user_id, document PK - document_id, и таблица document также содержит user_id. document таблица имеет столбец approved, который может содержать либо Да, либо Нет. Таким образом, эти две таблицы связаны user_id

Как мне написать запрос MySQL (или, что еще лучше, в стиле Active Record для Code Igniter), в котором можно перечислить всех учащихся, у которых есть хотя бы 1 неутвержденный документ?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018
select distinct students.name from students join documents on 
students.user_id=documents.user_id where documents.user_id is No
0 голосов
/ 29 июня 2018
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);

+ ---------------- + -------------------- + -------- ----------- + | номер студента | имя студента student_Last_name | + ---------------- + -------------------- + ----------- -------- + | 1 | F1 | L1 | + ---------------- + -------------------- + ----------- -------- + 1 ряд в наборе (0,02 сек)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...