【问题标题】:combine two results into one result set mysql将两个结果合并为一个结果集mysql
【发布时间】:2015-11-02 10:48:27
【问题描述】:

我有两个查询,一个将返回按喜欢排序的数据,另一个在用户城市返回按距离排序的数据。 所以如果查询1返回:id 1,2,3(按喜欢排序) 并查询 2 返回:id 4,5,6(按距离排序) 我需要最终设置的结果是 1,2,3,4,5,6 我试图在这两个查询之间进行联合,但它不起作用。还有其他建议吗?

【问题讨论】:

  • 添加您目前尝试过的内容
  • (SELECT DISTINCT ID, 'a' as type,... FROM table1 GROUP BY ID ORDER BY likesDESC) union all( SELECT DISTINCT ID, 'b' as type,....FROM table1 GROUP BY ID ORDER BY 距离)
  • 但是第一次查询返回的结果集和第二次查询的结果集和最终结果不一样

标签: mysql union


【解决方案1】:

你可以根据这个link使用left joinunionUnion ALL 也可以像您看到的here 一样工作。

示例:SELECT 1 UNION ALL SELECT 2

【讨论】:

  • 但这仍然不会如我所愿返回。 1,2,3,4,5,6 。到目前为止它返回 7,8,9,10,11,12...
  • 请在此处发布您的完整查询
【解决方案2】:

解决方案是对每个查询设置一个限制,然后联合将正常工作: (SELECT DISTINCT ID, 'a' as type,... 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限制 50) 按类型排序 asc。

【讨论】:

    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 2012-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-11
    相关资源
    最近更新 更多