2016-05-03 26 views
-1

私はどの方法を使ってMySQLからデータを得ることができないのかわかりません。外国のテーブルのMySQLデータ

とにかく私は2つのテーブルevent_detailsevent_datesを持っています。 event_detailsには、フィールドid,name,created,modifiedがあります。重要なテーブルはevent_datesです。イベントのうちstart_dateend_dateが格納されています。

サンプル・データは、イベントが同じstartDateEndDateを有することを意味するeventIdのための唯一の1エントリがある場合startdateenddateのためのシナリオは、この

  1. のようなものです。ここ

    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 
    

    以下のようなものです。

  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_idに対して複数のevent_dateを持つべきです –

+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 
関連する問題