1

ソーステーブルからの同じ「断片」の情報が宛先で2回必要な場合に、MYSQLクエリを実行しようとしています...説明させてください。

2つの表:「イベント」と「アーカイブされたイベント」。「アーカイブされたイベント」は「リンク」であり、現在のオープンイベントを過去の(クローズされた)イベントにブリッジします。このテーブルには、EventsテーブルのEvent_IDに対するIDのみが含まれています。

私がやりたいのは、アーカイブテーブルの各組み合わせのイベントタイトルを取得することです。

例えば:

   -----------------------------------
   |       ARCHIVE TABLE             |
   |PK|ClosedEventID |CurrentEventID |
   |1 |      5       |       3       |
   |2 |      2       |       3       |
   -----------------------------------

   -----------------------------------------
   |      EVENTS TABLE                     |
   |Event_ID | Event_Title | ............. |
   |    1    | Party 1     | ............. |
   |    2    | Party 2     | ............. |
   |    3    | Wedding 1   | ............. |
   |    4    | Funeral 1   | ............. |
   |    5    | Pancake     | ............. |
   ----------------------------------------

参加か組合か何かになると思います。私のSQLは公平ですが、私の頭はこれを解決しようとして回転しています。

だから私がしたいのは、クエリが実行されると、アーカイブイベントテーブルの各「ペア」が次のようになることです(PHPで処理できるように...):

   -----------------------------------
   |       ARCHIVE TABLE             |
   |PK|ClosedEventID |CurrentEventID |
   |1 | Pancake      |   Wedding 1   |
   |2 | Party 2      |   Wedding 1   |
   -----------------------------------

よろしくお願いします!:)

4

2 に答える 2

4

これはかなり単純です。

SELECT
    a.pk as "pk",
    e1.event_title as "closed_event",
    e2.event_title as "current_event"
FROM
    events as e1
    JOIN archive as a on e1.event_id = a.closed_event_id
    JOIN events as e2 on a.current_event_id = e2.event_id
于 2012-05-30T08:16:15.957 に答える
2
SELECT PK, e1.Event_Title AS ClosedEventID, e2.Event_Title AS CurrentEventID
FROM   ARCHIVE
  JOIN EVENTS AS e1 ON e1.Event_ID = ARCHIVE.ClosedEventID
  JOIN EVENTS AS e2 ON e2.Event_ID = ARCHIVE.CurrentEventID

sqlfiddleで参照してください。

SQL 結合について学習します。

于 2012-05-30T08:17:51.650 に答える