1

我有两个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 aaaaaaaaaaaa
2 2 1 2 2 事件A aaaaaaaaaaaa
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

如何仅显示每个位置的不同事件 ID?像这样:

id_ev id_event_ev id_location_ev id_e id_event 标题内容  
----- ----------- -------------- ---- -------- ------ -- ----------
1 2 1 2 2 事件A aaaaaaaaaaaa
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 回答