【发布时间】:2015-01-07 12:19:09
【问题描述】:
我有两张桌子。
我是 SQL 的新手。目前使用mysql。 我对与学校相关的数据库进行了以下设置:
表 A 包含学生记录。 学生名、密码、姓名、姓氏等。
表 B 包含上课记录。 每条记录都是这样的:日期、学生证、年级
我需要收集在特定日期范围内上课的学生的所有学生信息。
现在,愚蠢的方法是
首先我
SELECT all classes from Table B with DATE IN BETWEEN the range然后对于每个班级,我得到学生 ID 和
SELECT * FROM students WHERE id = student id
我无法理解的是聪明的方法。 如何仅在一个查询中执行此操作。 我无法理解 JOIN、UNION 等的概念......
到目前为止我最好的猜测是
SELECT students.id, students.name, students.lastname
FROM students, classes
WHERE classes.date BETWEEN 20140101 AND 20150101
AND
classes.studentid = students.id
但这是否适合这种情况?
【问题讨论】:
-
你有解决办法吗?亚当_b
-
见link。另外,
WHERE classes.date BETWEEN <date 1> AND <date 2>(没有IN) -
上述语法错误除外。查询有什么问题?通过加入 2 个表,您只需查询一次。
-
教务长,查询有效,我只是认为有更好的方法涉及加入或联合......我目前还不明白