gpt4 book ai didi

Mysql 从列表中选择全部并在另一个列表上按日期排序

转载 作者:行者123 更新时间:2023-11-29 20:42:39 25 4
gpt4 key购买 nike

所以我正在制作一个保修管理系统。保修即将结束时通知您的信息。

我将保修存储在一个名为“保修”的列表中,并将每个保修续订存储在一个名为“warranty_entries”的单独表中。

warranties表仅包含自动增量 ID、产品名称、公司、制造者和创建日期。

warranty_entries表包含一个 Auto_Increment ID、所属保修的 ID、到期日期、开始日期、创建日期以及一些其他字段。

我正在尝试从warranties中选择*并按照 warranty_entries 中最新条目的结束日期对它们进行排序.

因此,保修到期日期是最新到期保修条目的到期日期。

我会尝试再重新表述一次,因为我也对描述这一点感到困惑。我想按照最近创建的条目的到期日期对所有保修进行排序。

我似乎无法解决如何仅选择表中的 1 个条目并按该条目的到期日期对另一个表进行排序。

更新 - 表结构和所需输出

TABLE: warranties
-----------------------------------------------------------------
| id | 1 | 2 | 3 |
| name | chick warranty | duck warranty | cat warranty |
-----------------------------------------------------------------

TABLE: warranty_entries
----------------------------------------------------
| id | 1 | 2 | 3 | 4 | 5 |
| warranty_id | 1 | 2 | 2 | 3 | 3 |
| end_date | 2010 | 2005 | 2006 | 2010 | 2015 |
| start_date | 2008 | 2001 | 2005 | 2008 | 2010 |
----------------------------------------------------

我想从保修中选择所有内容,并在保修条目中相应条目的结束日期之前订购它们。由于有多个保修条目具有相同的warranty_id,我想使用最近的结束日期进行订购。

因此查询后,结果集将如下所示:

RESULT SET:
-----------------------
| id | name |
| 3 | cat warranty |
| 1 | chick warranty |
| 2 | duck warranty |
-----------------------

最佳答案

您可以在子查询中执行此操作,如下所示:

SELECT w.*, (SELECT end_date FROM Warranty_entries we WHERE we.warranty_id = w.id ORDER BY end_date DESC LIMIT 1) AS end FROM保修w ORDER BY end DESC

这应该可以解决问题。根据需要更改表和列的名称。

关于Mysql 从列表中选择全部并在另一个列表上按日期排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38550823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com