gpt4 book ai didi

MySQL 关联子查询与引用外部查询的 WHERE 子句

转载 作者:行者123 更新时间:2023-11-29 04:37:20 24 4
gpt4 key购买 nike

我想在 id 列上连接两个表,其中 id 在 table1 中是唯一的,但在 table2 中重复或可能不存在。在 table2 中,我想使用第二列(日期)来选择小于与 table1 行中的日期对应的日期的最大日期。我需要从表 2 中选择其他列。

我的查询是:

SELECT * FROM `t1` LEFT JOIN 
(SELECT `t2`.`other_column`, MAX(`t2`.`date`) FROM `t2` GROUP BY `t2`.`id` WHERE `t2`.`date`<`t1`.`date` )
ON `t1`.`id` = `t2`.`id`

问题是您不能在 t2 子查询的 WHERE 子句中使用 t1 变量。

最佳答案

您可以在select 子句中使用相关子查询做您想做的事情:

SELECT t1.*
(SELECT MAX(t2.date)
FROM t2
WHERE t2.id = t1.id AND t2.date < t1.date
) as t2date
FROM t1 ;

关于MySQL 关联子查询与引用外部查询的 WHERE 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099459/

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