Я не знаю, каким методом я могу получить данные из MySQL, отсюда и название.

В любом случае у меня есть 2 стола event_details и event_dates. event_details имеет поля id,name,created,modified. Важная таблица: event_dates. В котором хранятся start_date и end_date событий.

Примеры данных, как показано ниже

id    eventId    date
1       72       20160520
2       72       20160521
3       72       20160522
4       73       20160518
5       74       20160519
6       75       20160524
7       75       20160525
8       75       20160526

Здесь сценарий для startdate и enddate выглядит следующим образом

  1. Если есть только одна запись для eventId, это означает, что событие имеет такие же startDate и EndDate.

  2. Если eventId присутствует в таблице более 2 раз, то первая запись - startDate, а последняя - endDate.

Так что я запутался, какой метод мне использовать, чтобы получить результат в одной таблице с startDate и endDate события.

Я хочу данные в следующем формате

Name          startDate     endDate
music show    20160520      20160522
racing show   20160518      20160518
pupet show    20160519      20160519
dance show    20160524      20160526

Сообщите мне, проще ли получить данные в массиве в файле PHP, чем запускать циклы или проще использовать запросы MySQL.

-1
Mike Ross 3 Май 2016 в 08:50

2 ответа

Лучший ответ

Попробуйте этот запрос:

SELECT
    ed.id,
    ed.name,
    created,
    modified,
    min(startDate) start_date,
    max(endDate) end_date
FROM
    event_details ed
RIGHT JOIN event_dates edates ON ed.id = edates.id
GROUP BY    ed.id;
1
1000111 2 Июн 2016 в 05:06

Я думаю, вам нужно что-то вроде этого:

SELECT t.id,MIN(t.date) as start_date,MAX(t.date) as end_date,t1.name
FROM t,t1
where t.id=t1.id
GROUP BY id
0
Ani Menon 3 Май 2016 в 06:26