2015-11-02 203 views
0

我有两个查询,其中一个将返回按喜欢排序的数据,另一个则根据距离返回数据。 所以如果查询1返回:id 1,2,3(按喜欢排序) 和查询2返回:id 4,5,6(按距离排序) 我需要最终设置结果为1,2,3, 4,5,6 我试图做两个查询之间的联合,但它不工作。任何其他建议?将两个结果合并到一个结果集中mysql

+0

添加你到目前为止 – Thamilan

+0

尝试(SELECT DISTINCT ID, 'A' 类型,... FROM表1 GROUP BY ID ORDER BY likesDESC )UNION ALL( SELECT DISTINCT ID, 'B' 类型,. ... FROM table1 GROUP BY ID ORDER BY distance) –

+0

但在第一个查询中返回的结果集和第二个查询中的结果集与最终结果 –

回答

0

根据此link可以使用左加入联合联盟全部也可以像你可以看到here

实施例:SELECT 1个UNION ALL选择2

+0

不同,但这仍然不会按我的意愿返回。 1,2,3,4,5,6。到目前为止它返回7,8,9,10,11,12 ... –

+0

在这里发布您的完整查询请 – Keurdange

0

溶液是把限制到每个查询,则联合将工作正确: (SELECT DISTINCT ID, 'A' 作为类型,... FROM table1 GROUP BY ID ORDER BY likesDESC limit 50)union all(SELECT DISTINCT ID,'b'as type,.... FROM table1 GROUP BY ID ORDER BY distance limit 50)order by type asc。

相关问题