嗨,我知道基本的 MySQL 查询格式,但现在我需要做一些复杂的查询。说(出于解释目的)我有 3 个表,其列id、item_name和no_of_views。我想要一个查询来从这 3 个表中获取前 10 个查看项目。
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来自另一个表或同一个表,这都是真的,依此类推。这甚至可能吗?
请建议。