【发布时间】:2011-11-23 22:31:06
【问题描述】:
假设您有两张桌子。一个叫MOVIES:
- 电影 ID
- 电影名
然后是另一个名为 ACTORS 的包含出现在这些电影中的人:
- 电影 ID
- 演员姓名
现在,我想编写一个查询,返回包含以下一个或多个演员的任何电影:“Tom Hanks”、“Russell Crowe”或“Arnold Schwarzenegger”。
一种方法是这样的:
SELECT DISTINCT A.MovieId, M.MovieName FROM ACTORS A
INNER JOIN MOVIES M USING (MovieId)
WHERE A.ActorName IN ('Tom Hanks', 'Russell Crowe', 'Arnold Schwarzenegger');
这完全没问题,但是在我的情况下,我可能在 WHERE 子句中还有几个这样的条件,所以我想找到一种方法让 MOVIES 表成为我从中选择的主表。
查询此问题的最佳方法是什么?如果这很重要,我正在使用 Oracle 11g,但我希望有一个标准的 SQL 方法。
【问题讨论】:
-
如果您能显示您从中选择的实际表格会有帮助...