당신이 반복해서 또 다시 학생의 이름을 저장하지 않도록 정규화 된 데이터베이스 테이블이 있어야합니다
<!-- sql -->
CREATE TABLE students (id INTEGER, name varchar(60));
INSERT INTO students (id , name) VALUES (1, 'stud_1');
INSERT INTO students (id , name) VALUES (2, 'stud_2');
INSERT INTO students (id , name) VALUES (3, 'stud_3');
INSERT INTO students (id , name) VALUES (4, 'stud_4');
INSERT INTO students (id , name) VALUES (5, 'stud_5');
CREATE TABLE student_fee (id INTEGER, studentId INTEGER, month varchar(20));
INSERT INTO student_fee (id , studentId , month) VALUES (1, 1, 'january');
INSERT INTO student_fee (id , studentId , month) VALUES (2, 2, 'january');
INSERT INTO student_fee (id , studentId , month) VALUES (4, 2, 'february');
INSERT INTO student_fee (id , studentId , month) VALUES (5, 3, 'february');
INSERT INTO student_fee (id , studentId , month) VALUES (6, 4, 'february');
을 그리고 당신이 그렇게처럼 쿼리 것 :
select *
from students
where not exists (
select 1
from student_fee
where students.id = studentid
and month = 'january')
출력 :
id name
3 stud_3
4 stud_4
5 stud_5
(Sql 구문은 sqlite에 대해 확실하지 않은 mysql입니다)
'student_fee에서 선택하십시오. 어디에서 fee_month! = "January"'이렇게 하시겠습니까? – Greggz
'NOT EXISTS'에 대해 SQL 기본을 아십니까? – Selvin
@Greggz "! ="는 "="와 같은 결과를 제공합니다. –