2016-02-26 60 views
0

假設我們有兩個表
studentstudentID,姓名,部門標識)
departmentDepartmentID的,名稱)。
我們的目標是使用子查詢從兩個表中檢索數據。我試圖如何使用子查詢從多個表中檢索數據?

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

好像你們懂得編寫一個查詢來獲取此信息(明確的'JOIN')的正確方法。我不明白你的問題的目的。 –

+0

如何使用子查詢?這就是問題的目的@GordonLinoff –

+0

你沒有任何謂詞加入 - 所以當然你會得到一個笛卡兒的產品。 – Olli

回答

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

+0

感謝您的答案。它爲我工作。我將在下次繼續使用正確的示例 –

+0

如果它解決了您的問題,請接受此答案。 – user2407394

+0

是的,我明白了。謝謝。 –

相關問題