gpt4 book ai didi

mysql - 比较两个表之间的数据找到最新值

转载 作者:行者123 更新时间:2023-11-29 10:16:28 25 4
gpt4 key购买 nike

我的数据库中有 2 个表,我想比较对每个表进行的 2 个选择查询的值

表1:click_log

查询表1:

SELECT *
FROM click_log

表2:km_articles

查询表2:

SELECT km_article_no
FROM km_articles
WHERE km_article_date <= "2017-10-31" AND km_article_status = "Published" AND km_article_view_count <= "5"

我想要比较的列是表 1 的表 link_clicked 和 km_article_no,我知道我会发现重复匹配,但是从这些重复匹配中我想找到我想要从表 1 中的另一列(称为“when_clicked”包含数据信息,不确定如何将它们组合在一起进行查询,然后缩小范围。

这就是表格的样子:

表 1:

|link_clicked|when_clicked     KB00001 | 2017-08-02     KB00001 | 2017-12-02     KB00002 | 2017-08-02     KB00002 | 2017-09-02     KB00003 | 2017-09-02     KB00003 | 2017-09-02

表 2:

km_article_no|km_article_ti|km_article_status|km_article_view_count|km_article_date  KB00001    |outlook IOS  |  Published      |         5           | 2017-01-02  KB00002    |outlook CSS  |  Published      |         4           | 2017-01-05  KB00003    |outlook ZTE  |   Retired       |         3           | 2017-01-09

最佳答案

如果我理解正确的话,您希望显示所有 km_articles 行,每行都包含最新的相关 click_log.when_clicked 日期。因此,汇总每个 link_clickedclick_log 并找到最大 when_clicked。然后将其加入 km_articles

select kma.*, cl.last_clicked
from km_articles kma
join
(
select link_clicked, max(when_clicked) as last_clicked
from click_log
group by link_clicked
) cl on cl.link_clicked = kma.km_article_no
where kma.km_article_date <= date '2017-10-31'
and kma.km_article_status = 'Published'
and kma.km_article_view_count <= 5;

(如果您还想显示 click_log 中没有匹配项的 km_articles 行,请将 join 更改为 left join。)

关于mysql - 比较两个表之间的数据找到最新值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50052207/

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