2016-05-03 10 views
-1

Ich weiß nicht, mit welcher Methode ich meine Daten von MySQL bekommen kann, daher der Titel.MySQL-Daten von Fremd-Tabelle

Wie auch immer ich habe 2 Tabellen event_details und event_dates. event_details hat Felder id,name,created,modified. Wichtige Tabelle ist event_dates. Welche speichert start_date und end_date der Ereignisse.

Beispieldaten sind wie unter

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 

Hier Szenario für startdate und enddate wie dies ist

  1. Wenn nur 1 Eintrag für eventId ist, das bedeutet Ereignis gleiche startDate und EndDate hat.

  2. Wenn eventId für mehr als 2 mal in der Tabelle ist als der erste Eintrag ist startDate und der letzte Eintrag ist endDate.

So habe ich verwirrt, dass, welche Methode sollte ich mit startDate und endDate der Veranstaltung in einer Tabelle zu erhalten verwenden, um führen.

Ich mag Daten in folgendem Format

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

Lassen Sie mich wissen, ob es in Array in PHP-Datei durch Abrufen von Daten einfacher ist, und als durch Schleifen oder einfacher mit den MySQL-Abfragen ausführen.

Antwort

1

Diese Abfrage:

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

warum hier JOIN verwenden ??? –

+0

als 'event_date' Tabelle sollte mehrere event_date für eine bestimmte event_id haben –

+0

Ich versuchte die Abfrage und es gab mir Minimum von Datum und Maximum des Datums für die ganze Tabelle. Nicht für jedes Ereignis –

0

Ich glaube, Sie so etwas wie dies wollen:

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 
Verwandte Themen