嗨,我知道基本的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