gpt4 book ai didi

mysql - 组合一个 mysql 查询

转载 作者:行者123 更新时间:2023-11-30 01:34:23 25 4
gpt4 key购买 nike

涉及两个表:

第一个包含以下格式的时间表(表:stimuli_schedule)

id      left_side     right_side     start_datetime
1 LS1 LS2 2013-05-14 12:00:00
2 LS2 LS1 2013-05-15 11:44:00

数据是指引入 left_side right_side 项目的日期时间。从 2013-05-14 12:00:00 到 2013-05-15 11:44:00 第一个计划记录处于事件状态。

第二个包括事件记录(表 exp8):

id     bee_id    date_time            choice    landing_duration
1 Green12 2013-05-14 15:35:31 right 5

我需要找出两件事:(1)事件时左侧和右侧显示的是什么,以及(2)实际的选择是什么。

这是我所拥有的,但不能产生我需要的:

select * 
from exp8
where exists (
select left_side
from stimuli_schedule
where exp8.date_time < stimuli_schedule.start_datetime
order by stimuli_schedule.start_datetime asc
limit 1)

提前致谢!

最佳答案

这个怎么样?

SELECT e.*, ss2.left_side, ss2.right_side, ss2.start_datetime
FROM exp8 e
LEFT JOIN stimuli_schedule ss ON ss.start_datetime <= e.date_time
LEFT JOIN stimuli_schedule ss2 ON ss2.start_datetime <= e.date_time
GROUP BY e.id, ss2.id
HAVING ss2.start_datetime = MAX(ss.start_datetime) OR ss2.start_datetime IS NULL;

我们必须加入 stimuli_schedule 两次,一次是为了获取正确的日期,然后再次获取匹配的完整行。

sqlfiddle 在这里:http://sqlfiddle.com/#!2/271b0a/4

关于mysql - 组合一个 mysql 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17099015/

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