ORACLE 10g不显示数据

时间:2012-02-25 23:56:11

标签: sql oracle oracle10g sqlplus

我有以下查询,它没有显示任何记录,但它们存在。

SELECT movieID, actorID, title, lastName, firstName, gender 
FROM Actor, Movie
WHERE title ='Midnight Cowboy';

请注意这与我之前提出的问题不同,因为查看来自两个字段的数据不能正常显示任何数据。

我已经运行了这个查询:

SELECT movieID, actorID, title, lastName, firstName, gender 
FROM Actor, Movie
WHERE lastName ='Hoffman';

它显示了电影Midnight Cowboys以及与他相关的所有其他电影在这部电影中有两个演员是我想要的第二个查询显示第二个演员:

SELECT movieID, actorID, title, lastName, firstName, gender 
FROM Actor, Movie
WHERE lastName ='Voight';

这显示了他所有的电影以及Midnight Cowboys

这就是为什么我试图为Midnight Cowboys电影提出演员

这是来自假脱机文件的信息,我试过午夜牛仔也有查询不显示数据:

MOV TITLE YEAR


公司总奖金


DVDPRICE DISCOUNTPRICE


025 Midnight Cowboys 1969年 Metro-Goldwyn-Mayer 5 2
     17.99 11.99

1 个答案:

答案 0 :(得分:1)

尝试此查询并查看是否返回任何内容:

SELECT movieID, actorID, title, lastName, firstName, gender 
FROM Actor, Movie
WHERE UPPER(title) LIKE '%MIDNIGHT%COWBOY%';

假设确实如此,将电影标题完全与您在示例中使用的内容进行比较(例如Midnight Cowboy),并查看您的比较不正确的位置。

希望它有所帮助...

编辑:

好的,看过你对这个答案和OP的评论。

此查询SHOULD会返回您需要的数据:

SELECT Actor.firstName,
       Actor.middleName,
       Actor.lastName,
       Movie.title
  FROM Actor
 INNER JOIN Role ON (Actor.actorID = Role.actorID)
 INNER JOIN Movie ON (Role.movieID = Movie.movieID)
 WHERE (Movie.title = 'Midnight Cowboys'
       OR UPPER(Movie.title) LIKE '%MIDNIGHT%COWBOY%');

如果没有返回任何内容,那么我建议你有数据问题 尝试此查询以确保您至少有一条记录通过角色将电影链接到演员(顺便说一下,您不应将表格命名为“角色”,因为它是Oracle保留字)。
如果它没有返回任何行,那么您将丢失链接数据并且遇到的问题多于您发布的问题。

SELECT *
  FROM Role
 WHERE movieID = '025';

N.B。我假设movieID列是VARCHAR2列,因为您在原始问题中发布的结果中movieID显然显示为025,如果它是数字的话本来是25