2013-09-30 120 views
0

我不確定我是否使用了正確的術語。查詢JOIN/*覆蓋*字段

SELECT movies.*, actors.`First Name`, actors.`Last Name` 
From movies 
Inner Join actors on movies.`actor1` Where movies.`actor1` = actors.`indexActors`; 
#Inner Join actors on movies.`actor2` Where movies.`actor2` = actors.`indexActors`; 

我把第二行註釋掉了,每個都單獨工作,我想知道如何將它們合併。

2ndly,當我執行查詢,我得到的結果:

ID Title     Runtime Rating Actor1 Actor2 First Name Last Name 
1 Se7en     127  R  1  2  Morgan  Freeman 
2 Bruce Almighty   101  PG-13 1  3  Morgan  Freeman 
3 Mr. Popper's Penguins 94  PG  3  4  Jim  Carrey 
4 Superbad    113  R  4  5  Emma  Stone 
5 Crazy, Stupid, Love. 118  PG-13 4  Null Emma  Stone 

有沒有一種方法來添加從第2的結果加入到最右邊的列? 另外,是否可以合併來自First Name和Last Name的字符串/ VARCHAR,然後在相應的Actor字段下顯示該值? (又名第1行的Actor 1下的字段將是「Morgan Freeman」而不是「1」)

謝謝。

+0

取決於你的分數... http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_concat – zod

+0

SELECT movies。*,actors.'First Name',actors。 'Last Name',actor2.firstname || actor2.lastname ... try ...尋找工會 – zod

+0

您發佈的sql無效。你確定它有效嗎? –

回答

0

您的sql無效,但您可以通過兩次連接到同一個表並使用不同的別名來實現目標。這樣的事情

select blah blah blah 
from table1 t1 join table2 t2 on t1.field1 = t2.field1 
join table2 t2_again on t1.field1 = t2_again.field2 
etc 

至於在單場的連結第一和最後一個名字,大多數數據庫有一個方法來連接字符串,但他們並不都是一樣的。你必須指定你的數據庫引擎。