2012-09-13 37 views
2

我有一个选择查询,我想在视图和另一个表上进行联接。 视图工作正常,表格也是如此,单独。但是,当我尝试做一些事情,如:sql从视图和表中选择

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

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

是语法错误,或者是只是不允许的看法?

+4

显示你的看法。 – Parado

+0

使用别名它将帮助 – xurca

+0

是。就是这样。现在我记得之前发生过的事情:)谢谢 –

回答

5

这应该工作

select v.col1, t.col2 
from VIEW v, TABLE t 
where v.col1 = t.col1 
1
SELECT VIEW.col1, VIEW.col2 
from VIEW AS VIEW INNER JOIN TABLE AS TABLE 
ON VIEW.col1 = TABLE.col1 
1
SELECT MYVIEWNAME.col1, MYVIEWNAME.col2 
FROM VIEWNAME AS MYVIEWNAME INNER JOIN TABLENAME AS MYTABLENAME 
ON MYVIEWNAME.col1 = MYTABLENAME.col1 
0

我建议你使用左或内部连接和别名表和视图。

select v.col1 , v.col2 

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

你必须有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工作。