1

私は 2 つの mysql テーブル、テーブルevent、およびテーブルを持っていますeventvenue

会場から他のイベントを取得したい。

-------------- 表event: ---------------

id_e
id_event
title
content

-------------- 表eventvenue:--------------

id_ev
id_event_ev
id_location_ev

join を使用して、会場から他のイベントを取得します。

SELECT * 
FROM eventvenue 
JOIN event ON eventvenue.id_event_ev = event.id_event 
WHERE eventvenue.id_location_ev=1

結果は次のとおりです。

id_ev id_event_ev id_location_ev id_e id_event タイトル コンテンツ  
----- ----------- -------------- ---- -------- ------ -- ----------
1 2 1 2 2 イベントA aaaaaaaaaaaaa
2 2 1 2 2 イベントA ああああああああ
1 4 1 4 4 イベント B bbbbbbbbb
1 9 1 9 9 イベント C cccccccc
3 5 1 5 5 イベント 5 555555

出力には、id_event_ev/の同じid_event値を持つ 2 つの行が含まれます2

場所ごとに異なるイベント IDのみを表示するにはどうすればよいですか? このような:

id_ev id_event_ev id_location_ev id_e id_event タイトル コンテンツ  
----- ----------- -------------- ---- -------- ------ -- ----------
1 2 1 2 2 イベントA aaaaaaaaaaaaa
1 4 1 4 4 イベント B bbbbbbbbb
1 9 1 9 9 イベント C cccccccc
3 5 1 5 5 イベント 5 555555

注:id_evは重要ではありません。

4

2 に答える 2

2

このコードを試してください

SELECT * 
FROM eventvenue 
JOIN event ON eventvenue.id_event_ev = event.id_event 
WHERE eventvenue.id_location_ev=1
GROUP BY event.id_event, eventvenue.id_event_ev
于 2012-05-14T10:20:05.373 に答える
0

id_ev実際、単に無視するか、その最小値を取得したいだけです。

これはあなたが必要にします

SELECT DISTINCT

-- maybe drop next line
MIN(id_ev) AS id_ev, 
-- maybe drop next line

id_event_ev, id_location_ev, id_e, id_event, title, content 

FROM eventvenue 
INNER JOIN event ON eventvenue.id_event_ev = event.id_event 
WHERE eventvenue.id_location_ev=1

-- Drop next line if you dropped line above
GROUP BY eventvenue.id_ev
于 2012-05-14T09:49:14.527 に答える