web-dev-qa-db-ja.com

複数の重複する列名を持つ結合からビューを作成するにはどうすればよいですか?

このような形式のテーブルがいくつかあります

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

ここで、tntn.textを含む列名です。

1
ryanmattscott

私はそれを理解しました、エイリアスは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

);
1
ryanmattscott