嗨,我知道基本的MySQL查詢格式,但現在我需要做一些複雜的查詢。 說(爲解釋的目的) 我有3分表用柱ID,ITEM_NAME,和no_of_views。 我想單個查詢從這3個表中獲得前10個查看項目。單個MySQL查詢從不同視圖獲取不同表格的結果
Table1
id: item_name no_of_views
1 item1 20
2 item2 25
3 item3 16
4 item4 10
Table2
id: item_name no_of_views
1 itemA 2
2 itemB 5
3 itemC 70
4 itemD 0
Table3
id: item_name no_of_views
1 item_1 34
2 item_2 55
3 item_3 10
4 item_4 1
我知道我必須加入這些表,然後查詢基於no_of意見
像
$query="
(SELECT * FROM Table2)
UNION ALL
(SELECT * FROM Table2)
UNION ALL
(SELECT * FROM Table2)
ORDER by no_of _views DESC LIMIT 10";
這工作完全正常,但我的問題是我的表中有項100在其中我有很多表,如果這是我做的方式查詢將不得不從所有的表中得到所有的結果,然後給我只有前10個意見,
我想做的它喜歡根據沒有意見從所有表中選擇10個值 就像說我有10個表,並且每個表都有一個no_of_views,我如何查詢以查看哪個項目在所有表中具有最高視圖,然後再從另一個表中降低no_of_views或者同一張桌子,這是真的,等等。 是甚至可能的。
請建議。
「F這是我的方式做到這一點的查詢必須從所有表得到的所有結果,然後給我的只有排名前10位的觀點」 - 這是這樣一個查詢的主要問題 - SQL引擎在查看所有這些視圖之前無法知道前十個視圖是什麼。 – 2012-07-21 06:18:22