我的数据库中有四个表:
student
:包含学生的ID和姓名等。student_fee
:包含 paid_date , student_id 和 fee_id ,其中包含对student
和{{1>的引用表格fee
:包含 fee_id ,费用金额, fee_typeid (参考fee
表格)fee_type
:包含 fee_typeid 和费用类型 - 入场费,每月学费,罚款,统一费用等。如何显示已支付入场费的学生(或 fee_typeid 入学费)和尚未支付入学费的学生?
嗯..英语不是我的第一语言;)
答案 0 :(得分:0)
SELECT * FROM student WHERE student_id IN
(
SELECT student_id FROM student_fee WHERE fee_id IN
(
SELECT fee_id FROM fee WHERE fee_typeid=?
)
)
我相信这就是你所需要的。这是一种在不实际编写连接语法的情况下执行join
的方法。
基本上,您选择的所有 fee_id 都属于您想要的类型。然后,您选择所有 student_id ,其中 fee_id 与您刚刚选择的那些匹配。最后,您提取有关 student_id 是您刚刚提取的ID之一的学生的所有信息。