web-dev-qa-db-ja.com

ビューとテーブルからのSQLの選択

ビューと別のテーブルで結合を実行したいselectクエリがあります。ビューは正常に機能し、テーブルも個別に機能します。しかし、私が次のようなことをしようとすると、

select VIEW.col1, VIEW.col2
from VIEW, TABLE
where VIEW.col1 = TABLE.col1

The multi-part identifier "VIEW.col1" could not be bound.

構文が間違っているのですか、それともビューで許可されていないだけですか?

5
sd_dracula

これはうまくいくはずです

select v.col1, t.col2
from VIEW v, TABLE t
where v.col1 = t.col1
10
Vytalyi
SELECT VIEW.col1, VIEW.col2
from VIEW AS VIEW INNER JOIN TABLE AS TABLE
ON VIEW.col1 = TABLE.col1
1
CatchingMonkey
SELECT MYVIEWNAME.col1, MYVIEWNAME.col2
FROM VIEWNAME AS MYVIEWNAME INNER JOIN TABLENAME AS MYTABLENAME
ON MYVIEWNAME.col1 = MYTABLENAME.col1
1
Harrison Brock

次のようなviewが必要です。

create table MyView
as
select column1 as col1, column2 as col2
from tab

or

CREATE VIEW MyView (col1,col2)
as
select column1, column2
from tab

その後、あなたはそれに参加することができます:

select MyView.col1, MyView.col2
from MyView, TABLE
where MyView.col1 = MyView.col1

or

select v.col1, v.col2
from MyView v, TABLE t
where t.col1 = t.col1

or

select v.col1, v.col2
from MyView v
join TABLE t on t.col1 = t.col1

たぶん、いくつかの例はすべてのRDBMSで機能するとは限りません。

0
Robert

左結合または内部結合を使用して、テーブルとビューのエイリアスを作成することをお勧めします。

select v.col1 , v.col2

 from view v
 inner join table t on t.col1 = v.col1
0
Pierce