2012-08-26 38 views
0

我有4個表格,我希望創建一個視圖。除一個字段外,所有表都具有相同的列。如何用4個表格創建視圖 - 除了一個字段外,所有表格都是相同的

這裏是一個例子。然後領域的數量大約是15

table A 
a b c d f1 

table B 
a b c d f2 

table C 
a b c d f3 

table D 
a b c d f4 

我想創建一個看起來像這樣

a b c d f1 f2 f3 f4 

我使用的是最新的versionb我對RDS MySQL中的視圖。使用mysql語法創建這個視圖的最有效方法是什麼?

補充說明。字段a,b,c,d將會彼此連接。即

A.a=B.a.=C.a=D.a and A.b=B.b etc.... 
+0

你的意思是該領域ABCD具有相同的結構,或者它們具有相同的內容?這些表格如何相互關聯? –

+0

「*最有效的方法*」是什麼意思?當你說「*創建這個視圖*」時,你的意思是你想要一個查詢返回以這種方式查看的結果,或者你真的想創建一個[存儲視圖](http://dev.mysql。 COM/DOC/EN/views.html)? – eggyal

+0

基本上所有的字段都是一個大的複合鍵 – Tampa

回答

0

如果假定,你的領域abcd是類似的唯一關鍵是你的目的(請說明否則)你的CREATE VIEW句法的應該是這樣的:

CREATE VIEW your_view AS 
SELECT A.a, A.b, A.c, A.d, 
     A.f1, B.f2, C.f3, D.f4 
FROM A 
INNER JOIN B ON A.a = B.a AND A.b = B.b AND A.c = B.c AND A.d = B.d 
INNER JOIN C ON A.a = C.a AND A.b = C.b AND A.c = C.c AND A.d = C.d 
INNER JOIN D ON A.a = D.a AND A.b = D.b AND A.c = D.c AND A.d = D.d; 
0
CREATE VIEW foo AS 
SELECT * FROM tableA NATURAL JOIN tableB NATURAL JOIN tableC NATURAL JOIN tableD 
相關問題