如何使用子查询从多个表中检索数据?

时间:2016-02-26 13:08:40

标签: sql database subquery inner-join

假设我们有两张桌子 student studentID ,姓名,department_ID)
department departmentID ,姓名)。
我们的目标是使用子查询从两个表中检索数据。我正在尝试这个

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中使用子查询。

1 个答案:

答案 0 :(得分:0)

希望这会有所帮助:

select *, (select name from department d where s.departmentID = d.departmentID) as dname 
from student s 
where (select name from department d where s.departmentID = d.departmentID) is not null

然而,这个问题意味着使用连接来解决。要学习subQ,请使用适当的示例。

SQL小提琴:Test