我有以下查询,它没有显示任何记录,但它们存在。
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
答案 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
。