2016-05-03 3 views
-1

Я не знаю, используя какой метод я могу получить свои данные от MySQL, отсюда и название.Данные 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

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

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; 
+0

почему использовать право присоединиться здесь ??? –

+0

как 'event_date' таблица должна иметь несколько event_date для определенного event_id –

+0

Я попробовал запрос, и это дало мне минимум даты и максимальной даты для всей таблицы. Не для каждого события –

0

Я думаю, что вы хотите что-то вроде этого:

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 
Смежные вопросы