代码之家  ›  专栏  ›  技术社区  ›  Rawr

联接两个表并按单列排序

  •  0
  • Rawr  · 技术社区  · 6 年前

    假设我有两张桌子,一张是顾客桌,一张是订单桌。目标是显示客户何时加入以及订单何时创建的时间表。

    客户

    id name created
    1  John 1
    2  Mary 3
    3  Bob  5
    

    id   created
    aaa  2
    bbb  4
    ccc  6
    

    合并

    id  name  created
    1   John  1
    aaa       2
    2   Mary  3
    bbb       4
    3   Bob   5
    ccc       6
    

    最初,我从一个join表开始,该表包含每个表的id和创建日期。我想知道是否有更有效的方法连接这两个表并按创建日期排序。

    或者,我可以查找最后的X记录并在代码中手动合并结果。在这里寻求建议。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Nick SamSmith1986    6 年前

    created . 行由“Customer”或“Order”值标识:

    SELECT *
    FROM (SELECT 'Customer' AS type, id, name, created FROM Customer
          UNION ALL
          SELECT 'Order', id, '', created FROM Orders) u
    ORDER BY created, type
    

    type        id      name    created
    Customer    1       John    111
    Order       aaa             111
    Customer    2       Mary    222
    Order       bbb             222
    Customer    3       Bob     333
    Order       ccc             333