Я не знаю, каким методом я могу получить данные из 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
выглядит следующим образом
Если есть только одна запись для
eventId
, это означает, что событие имеет такие жеstartDate
иEndDate
.Если 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.
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;
Я думаю, вам нужно что-то вроде этого:
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
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.