我想使用的是CROSS APPLY,但我猜mysql中不存在这种方法。我读过的替代方法是LATERAL。我使用的是mariadb 10.3,我猜也不存在这种方法。ticket表包含一个id,它被note表中的ticket_id列引用。一张ticket可以有很多notes,我试图列出所有的票据,并列出它们最近的票据日期(post_date)。我该如何编写下面的mariadb查询呢?
SELECT t.*, n.post_date
FROM ticket t,
LATERAL (
SELECT note.post_date FROM note WHERE t.id = note.ticket_id ORDER BY note.post_date DESC LIMIT 1
) n;
表格结构示例:
- 机票**
| 标识符|科目|
| - -| - -|
| 一个|填料|
| 2个|更多|
- 注意事项**
| 标识符|晚于日期|票证标识|
| - -| - -| - -|
| 一个||一个|
| 2个||一个|
| 三个||2个|
| 四个||一个|
| 五个||2个|
我确实找到了一个开放的jira票从人们要求mariadb支持横向。
1条答案
按热度按时间r8xiu3jd1#
据我所知,MariaDB版本11之前不支持
LATERAL
。但我们可以在这里轻松使用ROW_NUMBER
,它是受支持的:如果要对当前横向连接进行精密平移,请使用: