2012-02-25 109 views
-5

我有以下查詢,它不顯示任何記錄,但它們存在。ORACLE 10g不顯示數據

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'; 

它顯示了電影午夜牛郎加上與他相關聯的所有其他電影有兩個演員在這部電影而這正是我想要的第二個查詢顯示的第二個角色:

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

這說明一切,他是在加午夜牛郎

這就是爲什麼我試圖造就了午夜牛演員的電影男孩的電影只有

這裏是從假脫機文件的信息,我已經試過午夜牛郎還與德查詢不顯示數據:

MOV TITLE年


公司TOTALNOMS AWARDSWON


DVDPRICE DISCOUNTPRICE


025午夜牛郎1969年
米高梅5 2
17.99 11.99

+0

什麼是錯誤? – 2012-02-26 00:01:29

+0

沒有行顯示,因爲它表示它沒有顯示任何記錄 – user1137472 2012-02-26 00:02:06

+0

對不起,我不知道你是否允許我可以改變它,但它不會允許它 – user1137472 2012-02-26 00:04:02

回答

1

嘗試此查詢,看看它是否返回任何東西:

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

假設是這樣,比較電影標題確切你在你的例子中使用(即Midnight Cowboy),看看你的比較是不正確的。

希望它可以幫助...

編輯:

OK,已經看到這個答案和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

+0

對不起,我沒有看到你的答案,直到今天會嘗試謝謝你,讓你知道 – user1137472 2012-02-26 16:08:38

+0

它不顯示任何錯誤,但它表示沒有選擇行 – user1137472 2012-02-26 16:11:59

+0

@ user1137472 - 那麼你必須已經錯誤地運行該查詢,或歪曲結果你的演員只查詢問題中的數據,或者自運行數據後刪除數據。 (或者你插入另一個會話,並沒有提交)。將其中一個僅限actor的查詢的實際結果添加到問題中。 – 2012-02-26 16:23:52