2013-05-08 6 views
0

데이터베이스의 이벤트 테이블에서 이벤트 목록을 가져 오는 getEvents()라는 이벤트 모델과 메서드가 있습니다.Laravel 쿼리 작성기의 다중 관계

각 이벤트에는 차례로 연결된 대리인이 있으며 이는 복잡해졌습니다.

delegate_event (이 피벗 테이블은 대리인을 event_id 및 delegate_id를 기반으로 이벤트에 연결 함), 대리인 (id 필드와 contact_id 필드가 포함 된 간단한 테이블) 및 연락처 목록에 대한 정보가 들어 있습니다.

대리인 테이블은 contact_id를 사용하여 연락처 테이블에 연결하고 해당 연락처와 관련된 다양한 정보를 가져옵니다.

각 이벤트에 필요한 대부분의 정보를 얻기 위해 쿼리 작성기와 leftJoin 메서드를 사용하고 있지만 이제는 대리자 목록을 가져와야합니다. http://paste.laravel.com/qSa

delegate_event 테이블을 통해 이벤트와 연결된 대화 상대와 연결된 대화 상대를 참여시키는 방법을 배울 수 없습니다.

누군가 나를 도와 줄 수 있습니까? 감사.

답변

0

여러 이벤트에 연관된 여러 사용자 (위임자)가 있으므로 이벤트 사용자에 대해 다 대다 테이블이 필요합니다.

mtm_event_user : ID, 이벤트, 사용자

이벤트 : ID, 이름 (이벤트)

사용자 : ID, 연락처

을 여기

내가 가진 무엇 연락처 : 아이디, 이름, 주소 등

여기에 내가 가진 쿼리가 있습니다. 필요한 필드에 맞게 SELECT를 수정할 수 있습니다.

SELECT * 
FROM contacts 
INNER JOIN users ON users.contact = contacts.ID 
INNER JOIN mtm_event_user AS meu ON meu.user = users.id 
WHERE meu.`event` = 1 

여러 이벤트의 경우 WHERE meu를 대체하십시오. event = 1 (으)로 주문하십시오. event