2012-05-14 2 views
1

J'ai deux tables mysql, table event et table eventvenue.mysql sql distinct avec joindre deux tables

Je veux obtenir un autre événement d'un lieu.

Table -------------- event: ---------------

id_e 
id_event 
title 
content 

------- ------- Table eventvenue: --------------

id_ev 
id_event_ev 
id_location_ev 

J'utilise rejoindre pour obtenir un autre événement d'un lieu:

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

Le le résultat est:

 
id_ev id_event_ev id_location_ev id_e id_event title content 
----- ----------- -------------- ---- -------- ------ ------------ 
1  2   1    2  2   eventA aaaaaaaaaaaa 
2  2   1    2  2   eventA aaaaaaaaaaaa 
1  4   1    4  4   eventB bbbbbbbbb 
1  9   1    9  9   eventC cccccccc 
3  5   1    5  5   event5 555555 

La sortie contient deux lignes avec la même valeur id_event_ev/id_event de 2.

Comment est-ce que je peux montrer seulement distinct ID d'événement par endroit? Comme ceci:

 
id_ev id_event_ev id_location_ev id_e id_event title content 
----- ----------- -------------- ---- -------- ------ ------------ 
1  2   1    2  2   eventA aaaaaaaaaaaa 
1  4   1    4  4   eventB bbbbbbbbb 
1  9   1    9  9   eventC cccccccc 
3  5   1    5  5   event5 555555 

Remarque: id_ev n'est pas important.

Répondre

1

essayer ce code

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 
+0

vous remercie beaucoup, c'est du travail: D – hendra

+0

@hendra vous êtes les bienvenus :) – AKZap

0

En fait, vous voulez simplement ignorer id_ev, ou obtenir la valeur la plus faible.

Cela vous fait besoin

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 
+0

i essayer ce code, il y a du travail aussi: D bonne idée "obtenir la valeur la plus basse": D – hendra