gpt4 book ai didi

mysql - 在 mysql INNER JOIN 中嵌套 max(date) 语句

转载 作者:行者123 更新时间:2023-11-28 23:26:58 24 4
gpt4 key购买 nike

我对围绕嵌套“select max(date)”样式语句的逻辑/语法有困难。让我试着解释一下。我的语句从三个表中提取数据:

表 #1(table1_companies)[id, 公司名称, 行业]

表 #2:(table2_companydata)[id, companyname, data, date_added]

表 #3:(table3_watchlist)[id, 公司名, 用户名]

我尝试执行的语句采用表 3 中的公司名称,INNER JOINS 表 1 中的“行业”,然后 INNER JOINS 表 2 中的最新公司信息(基于最后日期)。它是表 2 每个公司可以有很多行,我只需要基于添加的最新日期的最后一行。我当前的(简化的)声明没有尝试获取最后日期:

SELECT 
table1_companies.industry,
table2_companydata.data,
table3_watchlist.*

FROM
table3_watchlist
INNER JOIN table1_companies ON table1_companies.companyname = table3_watchlist.companyname INNER JOIN table2_companydata ON table2_companydata.companyname = table3_watchlist.companyname WHERE username='username'");

我想我需要在第二个 INNER JOIN 中插入一个“SELECT max(date_added) FROM table2_companydata”。但我在逻辑或语法方面都没有成功。有什么可以赐教吗?

最佳答案

执行加入然后选择最后一条记录。下面是一种使用 where 逻辑子句的方法:

SELECT c.industry, cd.data, w.* 
FROM table3_watchlist w INNER JOIN
table1_companies c
ON c.companyname = w.companyname INNER JOIN
table2_companydata cd
ON cd.companyname = w.companyname
WHERE username = 'username' AND
cd.date_added = (select max(cd2.date_added)
from table2_companydata cd2
where cd2.companyname = cd.companyname
);

关于mysql - 在 mysql INNER JOIN 中嵌套 max(date) 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38933169/

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