gpt4 book ai didi

php - mysql根据连接查询和最新日期时间获取所有行

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

你好,我有两个表:

表 1 - eod_stock

company_code | open | high | low | ltp | close | ycp | total_volume | total_value | datetime

表 2 - 公司

ID | code | name

这里 company code = code 所以要获取所有名称和其他信息,我使用了以下代码:

但第一个给我错误,第二个只返回一行,但我需要所有 200 家公司及其相关信息。

select
company.code,
company.name,
eod_stock.open,
eod_stock.high,
max(eod_stock.datetime)
from
company
right join company on company.code= eod_stock.company_code;

select
eod_stock.company_code,
max(eod_stock.close),
eod_stock.total_volume,
eod_stock.total_trade,
eod_stock.high,
eod_stock.low,
eod_stock.ltp,
max(eod_stock.datetime),
company.name
from
eod_stock
inner join company on (company.code = eod_stock.company_code);

但第一个给我错误,第二个只返回一行,但我需要所有 200 家公司及其相关信息。

最佳答案

这里的技巧是从每个 company_code 的最大 datetime 列表开始,您可以使用以下基本查询来完成:

SELECT company_code, MAX(datetime) AS maxdatetime
FROM eod_stock
GROUP BY company_code

将此连接到获取公司代码、公司名称和日终值的查询,您应该已准备就绪:

SELECT
company.code,
company.name,
eod_stock.open,
eod_stock.high
FROM eod_stock
INNER JOIN company ON company.code = eod_stock.company_code
INNER JOIN (
SELECT company_code, MAX(datetime) AS maxdatetime
FROM eod_stock
GROUP BY company_code) maxdt
ON maxdt.company_code = eod_stock.company_code AND
maxdt.maxdatetime = eod_stock.datetime

关于php - mysql根据连接查询和最新日期时间获取所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20871115/

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