4

2つの異なるテーブルの異なるすべての列をマージするビューを作成するにはどうすればよいですか。

CREATE VIEW listView 
AS 
SELECT * FROM tab1 h LEFT JOIN tab2 b 
ON h.tID=b.tID 
WHERE value = 0

これは私にエラーを与えます:

重複する列名'tID'

選択するすべての値をリストせずに2つのテーブルを結合する方法はありますか?

4

3 に答える 3

3

2つのテーブルには列が含まれていますtID。をコンパイルするにはVIEW、その列にエイリアスを作成するか、エイリアスを指定してtid、それが由来するテーブルを指定する必要があります。

1つの解決策:

SELECT  h.TID, -- and not specifying b.TID
FROM    tab1 h LEFT JOIN tab2 b ON h.tID=b.tID 

別の解決策:エイリアスを指定し、

SELECT  h.TID as H_TID,
        b.TID as B_TID
FROM    tab1 h LEFT JOIN tab2 b ON h.tID=b.tID 
于 2013-03-03T16:25:51.317 に答える
1

これを試して:

CREATE VIEW listView 
AS 
SELECT
  a.tID as a_tID,
  b.tID as b_tID,
  a.anothercolumn as a_anothercolumn,
  b.anothercolumn as b_anothercolumn
FROM tab1 a
JOIN tab2 b ON a.tID=b.tID 
WHERE a.value = 0;
于 2013-03-03T16:26:27.007 に答える
0

*を使用する代わりに列名を指定してから、次のように列のエイリアスを作成する必要があります。

SELECT h.tId, b.tId as BTId

同じ名前を2回持つことはできません。したがって、上記のエラーが発生します。

于 2013-03-03T16:25:06.110 に答える