2

可能重复,但对这种情况没有提供任何见解: 无法绑定多部分标识符

我有以下形式的查询:

select l.id, l.foo, r.id, r.foo
from tbl l 
    inner join storyevents r on l.id = r.id
    right join (
        select distinct foo from tbl where id= l.id
    ) tmp on l.foo = tmp.foo
where l.foo = 12345

但我收到以下错误:

The multi-part identifier "l.id" could not be bound.

关于right join子查询。

加分项:这是尝试从inner join基于单个列中删除重复行。更好的方法来做到这一点?

4

2 回答 2

1

试试这个,

SELECT l.id, l.foo, r.id, r.foo
FROM   storyevents l 
         INNER JOIN storyevents r 
               ON l.id = r.id
         RIGHT JOIN 
         (
               SELECT distinct extid, foo 
               FROM storyevents
         ) tmp on l.foo = tmp.foo AND
                  tmp.extid = l.id
where l.foo = 12345
于 2012-08-22T07:50:33.547 回答
0

删除重复行的更好方法?

 select distinct l.id, l.foo, r.id, r.foo 
 ....
于 2012-08-22T07:50:50.720 回答