2016-06-16 22 views
0

このクエリは、「結合式がサポートされていません」エラーの原因となっている。「JOIN式はサポートされていません」を解決するにはどうすればよいですか?

select * from (reclassdata r 
left join 
crsubstatus cs 
on 
r.namebillinglog=cs.recordedstatusperson) 
left join 
role_task rt 
on 
r.role=rt.role 
and 
cs.recordedstatus=rt.task 

問題は、私が書き換えた場合、クエリが正常に実行されたとして、一つのテーブルrole_task 2に他のテーブルreclassdatacrsubstatusに参加しようとしているように見えますそれのように:

select * from (select * from reclassdata r 
left join 
crsubstatus cs 
on 
r.namebillinglog=cs.recordedstatusperson) x 
left join 
role_task rt 
on 
x.role=rt.role 
and 
x.recordedstatus=rt.task 

しかし、その後、私は余分なselect *を使用していると私はむしろそのパフォーマンスヒットを持っていないと思います。特別なselectなしで「サポートされていないJOIN式がサポートされていません」エラーを解決する方法はありますか?

答えて

0

ブラケットを取り外します。

select * 
from reclassdata r 
left join crsubstatus cs on r.namebillinglog = cs.recordedstatusperson 
left join role_task rt on r.role = rt.role and cs.recordedstatus=rt.task 
+0

Bob Jarvisの回答をご覧ください。 – sigil

0

私はサブクエリが唯一の方法だと思います。ジェットが最初に評価するために、参加残された知らないので、あなたが投稿が曖昧外と見なされるクエリが参加:

select * from reclassdata r left join 
(SELECT * from 
crsubstatus cs left join 
role_task rt on cs.recordedstatus=rt.task) t 
on r.role=t.role and r.namebillinglog=t.recordedstatusperson 

パフォーマンスヒット心配している場合は、別のクエリにサブクエリを移動することがあります。それは助けるかもしれません。パフォーマンスがまだ悪い場合は、サブクエリの結果を索引付けされた表に投げ込み、次に問合せでリンクする必要があります。

関連する問題