【发布时间】:2020-05-14 05:24:22
【问题描述】:
我有 2 个结构如下的表
Products
id | name | created_at |
1 | Produt1 | 2019-11-01 19:05:56 |
2 | Product 2 | 2020-01-28 19:05:56 |
3 | Product 3 | 2020-01-26 19:05:56 |
Draws
id | product_id |draw_number | created_at |
1 | 1 | 1 | 2020-01-28 19:05:56 |
2 | 1 | 2 | 2020-01-27 19:05:56 |
场景是,我们在产品表中有 3 个产品,对于产品 1,我们在抽奖表中有 2 个条目。
我在这里寻找一个查询,从产品表中选择数据并且数据应该按以下顺序排序
- 如果draws created_at 存在,则按draw created at 排序
- 如果没有抽奖,按产品表的创建时间排序。
结果输出应该是这样的
id | name | created_at |
1 | Produt1 | 2019-01-28 19:05:56 | //created_at of draws of latest draw for this product
2 | Product 2 | 2020-01-28 19:05:56 |
3 | Product 3 | 2020-01-26 19:05:56 |
如何选择预期的数据? TIA
【问题讨论】:
-
如果你使用 laravel,我猜
created_at将永远存在于每一行。所以,只需添加order by draws.created_at, products.created_at -
@FelippeDuarte,但是如何按抽奖表中的最新条目排序?
标签: php mysql laravel sorting left-join