【发布时间】:2015-09-04 15:01:18
【问题描述】:
我有一个学校数据库(只有 3 个)。在数据库中,提交有关其性能的记录。
我想要一个选项让用户只查询每所学校的最新条目。
目前 - 我可以查询最近的整体...
$result = mysqli_query($con,"SELECT * FROM reports, academicyears,schools,terms
WHERE reports.report_id=(SELECT MAX(report_id) FROM reports WHERE school_id=1 OR school_id=2 OR school_id=3)
AND academicyears.ay_id=reports.ay_id
AND schools.school_id=reports.school_id
AND terms.term_id=reports.term_id
ORDER BY reports.datesubmitted DESC
但我希望能够同时找到学校 1、学校 2 和学校 3 的最新信息。
我可以看到 OR 没有给我我想要的……它只是返回最新的记录!查询应该是什么?
另外 - 下一步是查找最近的记录,而无需命名学校 ID。随着学校数量的增长——那将是完全低效的!这可能吗?
【问题讨论】:
-
尝试将 WHERE reports.report_id=(SELECT MAX(report_id) 替换为 WHERE reports.report_id IN (SELECT MAX(report_id)
-
也许给这个read - 可能会给你一些新的想法。当遇到此类问题时,该页面是我最喜欢的资源之一。
-
@CG_DEV 有什么区别?
-
@ficuscr 好的 - 我会看看。谢谢。
-
"IN" ,可以搜索多个值,其中 = 只搜索一个特定的......实际上我的错,我只是看到你的子查询只返回一个值,没关系,我喜欢超级忙的工作反正哈哈