2012-08-22 53 views
2

可能的複製,但不提供洞察到這種情況: The multi-part identifier could not be bound多部分組成的標識符不能被束縛(加入子查詢)

,我有以下形式的查詢:

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中的重複行。更好的方式來做到這一點?

+0

我認爲一些示例數據可能對此有所幫助 – podiluska

+0

錯誤消息也會包含該行。我懷疑這是extid = l.id,因爲不能在() – Paparazzi

回答

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 
+0

@ podiluska中再次使用它看看 – Paparazzi

+0

@Blam Stealth編輯! :) – podiluska

+0

其實你是對的。感謝那。我忽略了它.. –

0

更好的方法來消除重複行?

select distinct l.id, l.foo, r.id, r.foo 
.... 
+0

不幸的是,在l和r上的id和foo的組合會多次導致相同行的'獨特'組合。如果我能將獨特的東西應用到只有foo,這將是完美的 – Kyle

相關問題