2016-06-22 5 views
0

이 아닌 외래 키 필드를 사용하여 일치하는 항목을 찾을 수없는 행을 포함한 테이블에 가입하는 방법 :나는 다음과 같은 구조를 가진 참석자 테이블이

+--------------+---------+ 
| attendee_id | others1 | 
+--------------+---------+ 
| abcd  | B  | 
| ghij  | A  | 
| defg  | C  | 
+--------------+---------+ 

또한 다음과 같은 구조를 가진 eventattendees 테이블 : 내가 원하는 무엇

+--------------+---------+----------+ 
| attendee_id | others2 | event_id | 
+--------------+---------+----------+ 
| wxyz  | D  |  1 | 
| mlno  | E  |  2 | 
| defg  | F  |  3 | 
+--------------+---------+----------+ 

어떤 EVENT_ID가 지정되면 (자),이 (attendee_id에 의해)이 테이블의 조인뿐만 아니라 일치하는 항목을 발견하지 않은 attenddes ID에 대한 참석자 테이블 정보 행을 반환 반환하는 쿼리를 만드는 것입니다 해당 event_id에 대해. 말해봐, event_id 3 :

+--------------+---------+---------+----------+ 
| attendee_id | others1 | others2 | event_id | 
+--------------+---------+--------------------+ 
| abcd  | A  | null | null | 
| ghij  | B  | null | null | 
| defg  | C  | F |  3 | 
+--------------+---------+--------------------+ 

어떻게 할 수 있습니까?

+1

이가 외부로 수행 할 수 있습니다 가입. –

+0

이전 데이터로 답변을 드린 후에 방금 질문을 변경했습니다. – Drew

+0

업데이트 된 답변을 사용하십시오. 나는 지금 떠나야 해. 원하는 경우 모든 열로 주문할 수 있습니다. – Mojtaba

답변

1

왼쪽 결합을 사용하십시오. 첫 번째 테이블은 주 테이블이어야하며 두 번째 테이블은 일치하는 항목이없는 경우 null을 반환합니다.

SELECT a.*, b.others2, b.event_id FROM attendees a LEFT JOIN eventattendees b ON a.attendee_id = b.attendee_id GROUP BY a.attendee_id 

테스트 :

CREATE TABLE attendees 
    (`attendee_id` varchar(10), `others1` varchar(10)); 

CREATE TABLE eventattendees 
    (`attendee_id` varchar(10), `others2` varchar(10), `event_id` int); 

INSERT INTO attendees 
VALUES 
    ('abcd', 'B'), 
    ('ghij', 'A'), 
    ('defg', 'C'); 

INSERT INTO eventattendees 
VALUES 
    ('wxyz', 'D', 1), 
    ('mlno', 'E', 2), 
    ('defg', 'F', 3); 


SELECT a.*, b.others2, b.event_id FROM attendees a LEFT JOIN eventattendees b ON a.attendee_id = b.attendee_id GROUP BY a.attendee_id 
+0

하지만 이벤트 ID가 3 인 모든 이벤트 ID가 포함됩니다. –

+0

event_id 만 포함해야합니다. 3. 올바른 데이터를 제공 했습니까? – Mojtaba

+0

왜해야합니까? 귀하의 대답은 event_id에 대한 조항을 포함하지 않고 편집했을 때 문제가 발생했을 수 있습니다. –

관련 문제