mysql找到max行_在SQL里, 我该如何SELECT行和MAX( Column值) , DISTINCT 另一列?_mysql_酷徒编程知识库...

通过使用LEFT JOIN和特定条件,可以在不使用内部查询和GROUP BY的情况下,从MySQL表中快速找到包含最大datetime值的行。这种方法通过匹配home列并确保b.datetime为NULL来筛选结果,从而得到最大的datetime记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最快速的MySQL解決方案,不需要內部查詢和GROUP BY :SELECT m.* # get the row that contains the max value

FROM topten m #"m" from"max"

LEFT JOIN topten b #"b" from"bigger"

ON m.home = b.home # match"max" row with"bigger" row by `home`

AND m.datetime < b.datetime # want"bigger" than"max"

WHERE b.datetime IS NULL # keep only if there is no bigger than max

說明:

使用home列對錶進行Join操作,使用LEFT JOIN確保表m中的所有行都出現在結果集中,在表b中沒有匹配項的那些對象為b中的列提供NULL s。

JOIN上的另一條條件要求只匹配b中的行,該行的值比中的行更大。

+------------------------------------------+--------------------------------+

| the row from `m` | the matching row from `b` |

|------------------------------------------|--------------------------------|

| id home datetime player resource | id home datetime ... |

|----|-----|------------|--------|---------|------|------|------------|-----|

| 1 | 10 | 04/03/2009 | john | 399 | NULL | NULL | NULL | ... | *

| 2 | 11 | 04/03/2009 | juliet | 244 | NULL | NULL | NULL | ... | *

| 5 | 12 | 04/03/2009 | borat | 555 | NULL | NULL | NULL | ... | *

| 3 | 10 | 03/03/2009 | john | 300 | 1 | 10 | 04/03/2009 | ... |

| 4 | 11 | 03/03/2009 | juliet | 200 | 2 | 11 | 04/03/2009 | ... |

| 6 | 12 | 03/03/2009 | borat | 500 | 5 | 12 | 04/03/2009 | ... |

| 7 | 13 | 24/12/2008 | borat | 600 | 8 | 13 | 01/01/2009 | ... |

| 8 | 13 | 01/01/2009 | borat | 700 | NULL | NULL | NULL | ... | *

+------------------------------------------+--------------------------------+

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值