我的数据库里有四张桌子:
student:包含学生的ID和名字等student_fee:包含paid_date、student_id和fee_id,引用student和fee表fee:包含fee_id、费用金额、fee_typeid (推荐到fee_type表) fee_type:包含fee_typeid和费用类型--入场费、每月学费、罚款、制服费等。如何显示已缴付入场费(或fee_typeid入场费)的学生和未缴付入场费的学生?
嗯..。(英语不是我的第一语言;)
发布于 2012-02-24 17:22:21
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是您刚刚输入的is之一。
https://stackoverflow.com/questions/9435007
复制相似问题