【发布时间】:2016-06-09 17:16:26
【问题描述】:
假设我们有两个表 student(studentID, name, department_ID) department(departmentID, name)。
我们的目标是使用子查询从两个表中检索数据。我正在尝试这个
select * from department, student
where department.departmentID
IN (select student.departmentID from student, department
where student.departmentID = department.departmentID)
但它返回两个表的行数的叉积。
像这样使用JOIN 可以得到正确的结果
select * from department
Inner join student
on student.departmentID = department.departmentID
并像这样使用WHERE 子句
select * from department, student
where department.departmentID = student.departmentID
我想知道是否有人可以告诉我如何在 SQL 中使用子查询。
【问题讨论】:
-
您似乎了解编写查询以获取此信息的正确方法(明确的
JOIN)。我不明白你的问题的目的。 -
如何使用子查询?这就是@GordonLinoff 问题的目的
-
你在没有任何谓词的情况下加入 - 所以你当然会得到一个笛卡尔积。
-
我相信@GordonLinoff 的观点是,你为什么需要使用子查询?
-
@TomH 我只是想知道如何使用子查询来完成?只是找到了新的方法来做到这一点。
标签: sql database subquery inner-join