这是我的场景:我有两个不同的表格: 表'订阅'包含与订阅用户网站相关的所有信息,以及'收视表',其中包含订阅网站产品的分数。简化是类似的东西:创建一个结合了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