0

複数のカテゴリを持つイベントをモデル化しました。

だから私はEventテーブルとテーブルを持っていEvent_Categoryます。このEvent_Category表は明らかで、Event IDと の 2 つの列がありCategory nameます。

カテゴリは、、、HIKEなどFAMILYですCLASS_OR_LECTURE

頭がおかしくなっているのかもしれませんが、特定のカテゴリのリストにあるイベントのリストを取得するための SQL クエリを理解することはできません。

たとえば、「HIKE」または「FAMILY」のいずれかのカテゴリを持つイベントのリストが必要です。

誰でも助けてもらえますか?

4

3 に答える 3

1
select * from events where id in (select distinct id from events_categories where category_id in (1,2))
于 2012-10-27T21:36:32.390 に答える
0

これじゃない?

SELECT DISTINCT event_id 
  FROM event_category
 WHERE category_name IN ('HIKE', 'FAMILY', 'CLASS_OR_LECTURE')

イベントID以外のものが必要な場合:

SELECT DISTINCT (whatever) 
  FROM event JOIN event_category USING (event_id)
 WHERE category_name IN ('HIKE', 'FAMILY', 'CLASS_OR_LECTURE')
于 2012-10-27T21:36:23.443 に答える
0
Select
  e.*
From
  events e
Where
  Exists (
    Select 'x'
    From   event_category ec
    Where  ec.event_id = e.event_id
    And    ec.category_name in ('HIKE', 'FAMILY')
  );
于 2012-10-27T21:43:32.323 に答える