2017-12-21 5 views
1

私はEventテーブルを持っています。イベントの開始日とイベントの終了日が同じイベントテーブルからイベントIDを選択

属性は次のとおりです。 event_idevent_namestart_dateend_date

start_dateend_dateが同じIDのすべてを知りたいです。

どのように私はこれをmysqlで達成できますか?

+0

意味は: 'どこstart_date =終了日? –

+0

はい。しかし私は入力日付を与えません。 SELECT event_id イベントから どこのstart_date = "2017-12-17" AND end_date = "2017-12-20"; これは私がしたくない –

+0

同じスタート・アンド・エンドを共有するさまざまなイベント、またはスタート日とそれ以外のすべてのイベントを検索したいですか? –

答えて

1

同じ開始日と終了日を共有するすべてのイベントを検索する場合は、それ自体でテーブルを結合する必要があります。

SELECT 
    e1.event_id, 
    e2.event_id 
FROM 
    event e1 JOIN event e2 ON (e1.event_id < e2.event_id AND 
          e1.start_date = e2.start_date AND 
          e1.end_date = e2.end_date) 

2つの異なるイベントのstart_dateとend_dateが同じ場合は、イベントテーブルに参加します。条件e1.event_id < e2.event_idは、同じイベントが自身と結合され、一致するイベントのペアが2回報告されないようにすることです(例:[event1、event22]、[event22、event1])

関連する問題