このような形式のテーブルがいくつかあります
myTable: id | Table1_id | Table2_id | Table3_id | value
Table1: id | text | ...
Table2: id | text | ...
Table3: id | text | ...
IDを関連するテキストに置き換えるビューを作成したいのですが。以下のような3つの結合ステートメントを使用してそれを取得できます。
SELECT table1.id, table2.id, table3.id, value
FROM myTable
INNER JOIN Table1
ON Table1_id = Table1.id
INNER JOIN Table2
ON Table2_id = Table2.id
INNER JOIN Table3
ON Table3_id = Table3.id;
を使用してビューを作成しようとすると
CREATE VIEW myView AS (
SELECT table1.id, table2.id, table3.id, value
FROM myTable
INNER JOIN Table1
ON Table1_id = Table1.id -- I tried as t1 but that doesn't work
INNER JOIN Table2
ON Table2_id = Table2.id
INNER JOIN Table3
ON Table3_id = Table3.id
);
私はORA-00957: duplicate column name
エラーを受け取ります。これは理にかなっています、それらはすべて同じid
列を持っています。エイリアスなどを使用して、次のような形式のビューを作成するにはどうすればよいですか。
myTable: id | t1 | t2 | t3 | value
ここで、tn
はtn.text
を含む列名です。
私はそれを理解しました、エイリアスはSELECT
ステートメントで上がるので、クエリは次のようになります:
CREATE VIEW myView as (
SELECT table1.id as t1, table2.id as t2, table3.id as t3, value
FROM myTable
INNER JOIN Table1
ON Table1_id = Table1.id
INNER JOIN Table2
ON Table2_id = Table2.id
INNER JOIN Table3
ON Table3_id = Table3.id
);