クエリの非常に奇妙なフォームがあります。まず、join
構文を使用する必要があります。2 つ目は、2 つの在庫テーブルの結合が必要なようです。
select d.msisdn, b.bdo_id
from (select i.*
from (select i.* from inventory i union all
select i2.* from inventory i2
) i
) i join
details d
on d.allocationid = i.allocationid join
bdo b
on i.bdo_id=b.bdo_id
where d.msisdn = 3454159650;
クエリを明示的な結合として構造化すると、クエリがより効率的になり、理解、修正、保守が容易になります。
編集:
一部のテーブルで一部のレコードが欠落している可能性があります。でこのバージョンを使用してみてくださいleft outer join
:
select d.msisdn, b.bdo_id
from details d left outer join
(select i.*
from (select i.* from inventory i union all
select i2.* from inventory i2
) i
) i
details d
on d.allocationid = i.allocationid left outer join
bdo b
on i.bdo_id=b.bdo_id
where d.msisdn = 3454159650;