gpt4 book ai didi

MySQL子查询与主查询值的日期时间比较

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

我正在尝试做一个看似简单的查询。我有一个查询,它工作正常,直到我尝试向 select 子句添加子查询。我试图通过使用从第一个表获取的日期查询第二个表来添加一列。不知道加入会不会更好。如果您查看我的第一个示例,它会返回第二个表中的每条记录,而不是使用外部 select 语句中的日期范围。

SELECT `sales`.`date` as 'newdate', `sales`.`material`, 
`customer_logs`.`name`, `sales`.`billingqty` ,
(select count(*) from iis_logs where datetime > (select
Date_add(date_format(newdate, "%Y-%m-%d 00:00:00"), interval - 1 day))
and datetime < date_format(newdate, '%Y-%m-%d 00:00:00' and url like
CONCAT('%',material,'%') limit 1) as tr
FROM `sales`
JOIN `customer_logs` ON `customer_logs`.`customer_number` =
`sales`.`soldtopt`
WHERE `date` >= '2017-09-01'
AND `date` <= '2017-09-30'
ORDER BY `date` DESC
LIMIT 10;

如果我只是像这样输入字符串作为日期,它会在一秒钟内返回:

SELECT `sales`.`date` as 'newdate', `sales`.`material`, 
`customer_logs`.`name`, `sales`.`billingqty` ,
(select count(*) from iis_logs where datetime > '2017-09-01 00:00:00'
and datetime < '2017-09-03 00:00:00' and url like
CONCAT('%',material,'%') limit 1) as tr
FROM `sales`
JOIN `customer_logs` ON `customer_logs`.`customer_number` =
`sales`.`soldtopt`
WHERE `date` >= '2017-09-01'
AND `date` <= '2017-09-30'
ORDER BY `date` DESC
LIMIT 10;

它没有获取我试图进入 select 语句的 newdate 值,而是返回 iis_logs 表中的每一行...

最佳答案

这看起来是一个完美的加入候选者。 FWIW,无论如何,mysql 查询优化器通常在子查询的连接上表现更好。

关于MySQL子查询与主查询值的日期时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46203460/

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