gpt4 book ai didi

mysql - 选择每个外键类型的最高记录

转载 作者:可可西里 更新时间:2023-11-01 07:28:50 25 4
gpt4 key购买 nike

我完全被一个看似简单的问题难住了。也许我只是感到困惑,因为我一直在思考/谷歌搜索/搜索它太久了。

考虑下表:

log_id (auto increment primary key)
domain_id (foreign key to "domains" table)
type (enum('notice','warning'))
message (varchar)

执行以下选择:

SELECT *
FROM logs
WHERE domain_id = 4

会给我 2 个“通知”类型的日志和 3 个“警告”类型的日志。

我如何才能只选择具有其类型 最高 ID 的日志?有效地为我提供了每个 domain_idtype 的最新日志。

只是描述它让我觉得自己很愚蠢,但我似乎无法正确描述..

感谢您的帮助。

克里斯

编辑:为了将来引用,如果您想从第一个表中选择所有记录并显示连接表的最新记录(在这种情况下选择所有域及其最新日志记录(如果可用)),只需在域上包装一个选择它周围的 table :

SELECT 
domains.*,
logs.*
FROM
domains
LEFT JOIN (
SELECT
l.*
FROM
logs l
INNER JOIN (
SELECT
MAX(log_id) as maxid
FROM
logs
GROUP BY
domain_id
type
) l3 ON l.log_id = l3.maxid
) l2 USING (domain_id)

最佳答案

首先加入一个子查询:

select
l.*
from
log l
inner join (
select
max(log_id) as maxid
from
log
group by
domain_id,
type
) l2 on
l.log_id = l2.maxid

关于mysql - 选择每个外键类型的最高记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8791640/

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