這是我的場景:我有兩個不同的表格: 表'訂閱'包含與訂閱用戶網站相關的所有信息,以及'收視表',其中包含訂閱網站產品的分數。簡化是類似的東西:創建一個結合了MySQL中幾個查詢結果的結果集?
Subscriptions: 'id','user','place','created', etc.
Ratings: 'id','user','product','created',etc.
現在我需要MySQL來回報我最近的10個項目,無論是訂閱或評級。到目前爲止,該解決方案發現是使兩個不同的調用:
SELECT * FROM subscriptions WHERE ... ORDER BY created LIMIT 10.
有了兩個結果(20元),我通過「創建」責令多維數組,並與(保存在$項目取得前10名):
$items = array_slice($items, 0, 10);
我懷疑這個解決方案是沒有效率的,因爲我得到它在兩個呼叫,並返回更elemnts比我更需要。我一直在讀UNION操作符允許你一次選擇幾個不同的表,但列數相同。我的問題是,在一次調用中,通過共同字段(在我的情況下創建)中加入特定數量的不同類型元素的最有效方法是什麼?是可能的嗎?非常感謝,任何幫助表示讚賞, Jesús。
這不是在鏈接解釋maxhud公佈,但可以把'LIMIT'上'UNION'爲好。結合'ORDER BY'這是你需要的。 – Halcyon 2012-07-09 16:48:16
使用UNION的查詢仍然是一個調用... – Braiba 2012-07-09 16:51:09
已編輯。 @FritsvanCampen希望這沒關係我在那裏寫了。不希望操作員錯過您的評論 – maxhud 2012-07-09 16:52:10