1
以下是我正在嘗試運行的查詢。mysql:奇怪的錯誤1111組使用無效
select location_data.trip_code,sum(max(device_time)-min(device_time)) from location_data,trip_management
where location_data.source_id=3 and location_data.trip_code=trip_management.trip_code
group by location_data.trip_code
存在由在兩個trip_managemnet和location_data tables.these跳閘trip_code識別各種旅行採取由單個唯一標識用戶(SOURCE_ID = 3)3。我在這裏要做的是總結每次旅行的所有時間差異,然後使用sec_to_time函數將其轉換爲hh:mm:ss,以顯示用戶3完成所有行程所需的總時間。
上述查詢的問題是,只要我在每次旅行的最大和最小device_time的差異上應用sum(),它就會生成錯誤1111。我不能提供一個子查詢,因爲這本身就是一個較大查詢中的子查詢。
我希望我解釋得很好。
非常感謝:)但我希望避免子查詢來實現結果。正如我所提到的,這個查詢initself是一個更大查詢中的子查詢。嵌套子查詢會導致性能下降,不是嗎?有沒有一種方法可以避免子查詢保持架構,因爲它是? – Salik 2013-05-01 14:48:21
@ user1451836在這種情況下,FROM子查詢無法避免,因爲「GROUP BY」子句需要在不同的上下文中應用。這裏的性能不會像在SUM()裏面的子查詢那樣差。這可能會慢幾個數量級。你的其他選擇是將子查詢緩存爲物化視圖,如果它不經常改變的話。 – 2013-05-01 15:27:59
視圖不會工作,因爲傳入的數據是實時的,創建視圖會增加系統的複雜性。所以,我認爲這是我的問題的答案。謝謝邁克爾:) – Salik 2013-05-01 15:50:39