如何使用子查询来解决这个问题?

时间:2013-05-16 04:30:37

标签: sql oracle11g

请考虑以下表格:

Table Name: Person   
Person_Id   Name 

Table Name: DVD    
DVD_ID  Owner_ID  Title

我想要一个查询,返回属于拥有“超人”的所有者的DVD列表。这是我的解决方案:

SELECT p.name,d.dvd_id
FROM  DVD d,Person p
WHERE p.person_id = d.dvd_id
AND Title = 'Superman' ;

我的采访者希望我使用子查询。那可能吗?我的查询是正确的方法吗?

2 个答案:

答案 0 :(得分:2)

希望如此,这对你有帮助。

select dvd_id 
from DVD 
where Owner_ID in 
(select person_id 
 from person 
 where name = 'Superman')

使用=我使用的in也会以同样的方式提供帮助。

答案 1 :(得分:2)

请检查:

select 
    * 
from 
    DVD 
where 
    Owner_ID=(select Person_Id from Person where Name='Superman')

鉴于名字超人是独一无二的。