是否有一个SQL查询可以生成两个事物一起出现的日期?
我的意思是,假设我有一张包含公交时刻表的表格。然后,我有A和B巴士。巴士A将于5月22日,5月24日和5月25日开放,而B则在5月22日,5月24日和5月26日开放。我想得到5月24日2辆公共汽车出现在一起的最新日期。
答案 0 :(得分:2)
要查看两辆公交车共享的内容:
SELECT t.date
FROM YOUR_TABLE t
WHERE t.bus IN ('A', 'B')
GROUP BY t.date
HAVING COUNT(DISTINCT t.bus) = 2
查看两辆巴士共享的最近日期:
SELECT t.date
FROM YOUR_TABLE t
WHERE t.bus IN ('A', 'B')
GROUP BY t.date
HAVING COUNT(DISTINCT t.bus) = 2
ORDER BY t.date DESC
LIMIT 1
答案 1 :(得分:0)
假设你有一个名为bus_schedule的表,其中包含一个bus_name和bus_date字段,这样的东西应该可以工作:
select bus_schedule_a.bus_date
from bus_schedule bus_schedule_a
inner join bus_schedule bus_schedule_b
on bus_schedule_a.bus_date = bus_schedule_b.bus_date
and bus_schedule_a.bus_name <> bus_schedule_b.bus_name
order by bus_schedule_a.bus_date desc
limit 1