MySQL内部连接获取连接表的最后一项

问题描述 投票:0回答:2

有两个表:

表格名称:门票

+-------+---------+---------+-------------------+
|  id   |  title       |  closed    | param     |
+-------+--------------+------------+-----------+
| 1     | test1        | 0          | 1         |
| 2     | test2        | 1          | 1         |
| 3     | test3        | 0          | 1         |

表名:ticket_event

+-------+---------+---------+-----------------+
|  id   |  ticket_id   |  event   | date      |
+-------+--------------+----------+-----------+
| 1     | 1            | OPENED   |           |
| 2     | 1            | CLOSED   |           |
| 3     | 2            | OPENED   |           |
+-------+--------------+----------+-----------+

我需要获取每个票证的最新记录ticket_event。结果应为:

test1 CLOSED
test2 OPENED
test3 NULL

我尝试过此代码,但获得了[[ticket_event:]的所有记录SELECT t1.title as t1Title, t2.event as t2Event FROM ticket t1 LEFT JOIN ticket_event t2 ON t1.id = t2.ticket_id

有两个表:表名称:票证+ ------- + --------- + --------- + ---------- --------- + | id |标题|关闭参数| + ------- + -------------- + ------------ + ----------- + | 1 ...
mysql sql join greatest-n-per-group
2个回答
1
投票
如果OPENED列只有两个可能的值CLOSEDevent(和NULL),则可以按故障单分组并获得每个事件的最小值,因为CLOSED被认为小于[ C0]:

1
投票
相关子查询可以解决问题:

0
投票
您可以使用:
© www.soinside.com 2019 - 2024. All rights reserved.