Получить дату, когда две вещи появляются одновременно (запрос MySQL) - PullRequest
1 голос
/ 03 июня 2011

Есть ли SQL-запрос, который может сгенерировать дату, когда две вещи появляются вместе?
Я имею в виду, скажем, у меня есть таблица состоит из расписания автобусов. Затем у меня есть автобусы A и B. Автобус A будет работать 22 мая, 24 мая и 25 мая, а B - 22 мая, 24 мая и 26 мая. Я хочу получить самую последнюю дату появления двух автобусов - 24 мая.

Ответы [ 2 ]

2 голосов
/ 03 июня 2011

Чтобы увидеть те, которые разделяют оба автобуса:

  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
0 голосов
/ 03 июня 2011

Если у вас есть таблица с именем 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
...