我有以下表格和數據。select語句上的NOOB查詢
錯誤
bug_id creator category_id change_request_id
1 john 101 123
2 mark 124 124
3 mark 139 135
4 shane 167 148
6 logan 278 234
類別
id owner category_name
101 mark abc
124 john def
139 mark ghi
167 mark jkl
278 mark mno
Change_request
id creator
123 mark
124 mark
135 mark
148 john
234 mark
我需要提取所有來自bug表的創建者字段值爲john或其類別所有者爲約翰(這只是類別表的所有者字段)或其變更請求「創建者」爲約翰的bug。
我寫了一個簡單的SELECT語句來實現這一
SELECT bug_id
FROM bugs
,category
,change_request
WHERE ((bugs.creator = 'john'
)
OR ((bugs.category_id = category.id
)
AND (category.owner = 'john'
)
)
OR ((bugs.change_request_id = change_request.id
)
AND (change_request.creator = 'john'
)
)
);
但是當我使用上面的查詢,需要很長時間來執行。我所有的表格列都被正確編入索引。有沒有優化的查詢來解決我的目的?
10g? 11克?哪一個? – GolezTrol 2014-10-16 18:09:04
避免使用不贊成使用的語法,使用標準的'JOIN'語法將更簡潔,更容易排除故障。 – 2014-10-16 18:09:24