获取两件事同时出现的日期(mysql查询)

时间:2011-06-03 02:52:10

标签: mysql sql aggregate-functions

是否有一个SQL查询可以生成两个事物一起出现的日期?
我的意思是,假设我有一张包含公交时刻表的表格。然后,我有A和B巴士。巴士A将于5月22日,5月24日和5月25日开放,而B则在5月22日,5月24日和5月26日开放。我想得到5月24日2辆公共汽车出现在一起的最新日期。

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