0

次のクエリをビュー テーブル名 salesboard に変えました。

select 
distinct(p.paymentID) AS paymentID,
j.jobID AS jobID,j.jobNumber AS jobNumber,j.jobType AS jobType, j.countType AS countType, j.countID AS countID,
ui.userID AS salesRep,
(
    case 
        when (j.idType = 'dealership') then d.dealershipName 
        when (j.idType = 'Group') then g.groupName 
        when (j.idType = 'Agency') then a.agencyName 
    end
) AS dealershipName,
(
    case 
        when (p.manualTimestamp <> '0000-00-00 00:00:00') then p.manualTimestamp 
        when (p.manualTimestamp = '0000-00-00 00:00:00') then from_unixtime(p.timestamp) 
    end
) AS checkTS,
p.paymentAmount AS paymentAmount,
po.estimatedMailArrival AS estimatedMailArrival 
from jobs j 
left join smdealershipjoins smdj on j.dealershipID = smdj.dealership 
left join smgroupjoins smgj on j.dealershipID = smgj.groupID 
left join smagencyjoins smaj on j.dealershipID = smaj.agencyID 
join userinfo ui on 
(
    case 
        when (j.idType = 'dealership') then (smdj.sm = ui.userID) 
        when (j.idType = 'Group') then (smgj.sm = ui.userID) 
        when (j.idType = 'Agency') then (smaj.sm = ui.userID) 
    end
) 
left join dealerships d on smdj.dealership = d.dealershipID 
left join dealershipgroups g on smgj.groupID = g.groupID 
left join agencies a on smaj.agencyID = a.agencyID 
join payments p on j.jobID = p.jobID 
left join purchaseorders po on j.jobID = po.jobID 
order by 
(
    case 
        when (p.manualTimestamp <> '0000-00-00 00:00:00') then p.manualTimestamp 
        when (p.manualTimestamp = '0000-00-00 00:00:00') then from_unixtime(p.timestamp) 
    end
) desc

ビューが保存され、期待される結果が返されます。ただし、新しいビュー テーブルで最も単純なクエリを実行すると、クエリの実行に数分かかります。私はそれを修正するために何かできることがあるかどうかを確認するために周りを検索しました-しかし、私は手ぶらで出てきました:(

できることはありますか?私は頭を悩ませ、助けを求めることにしました。

4

1 に答える 1