【发布时间】:2016-08-25 20:24:10
【问题描述】:
假设我有两个结构如下的数据库:
ID CLASS STUDENT_COUNT
1 Math 0
2 Biology 2
3 Algebra 1
4 Literature 5
ID CLASS_ID NAME
1 1 Ted
2 1 Mark
3 3 Sally
4 4 Sam
我正在尝试为 getClassById(int id) 编写一个查询,该查询将返回一个带有 Class 变量和 List 变量的对象。到目前为止,我能想到的唯一方法是使用 2 个查询。第一个会这样查询:
select id, class, student_count from t_classes where id = an_id;
这将返回足够的信息来填充 Class 变量。然后我需要对学生表进行第二次查询才能填充列表:
select id, name from t_students where class_id = an_id
请原谅我极端的 SQL 新手,但还有其他方法吗?
【问题讨论】:
-
使用内部联接在单个语句中关联 2 个表。这是 SQL 的基础知识,你会想学习这个,而不仅仅是回答。在 table1.key = tables2.key 上从 table1 内部连接 table2 中选择字段,其中 id = an_id。 id 和 class_id 是你的键。
标签: sql postgresql sqlite