2013-03-08 3 views
0

MYSQL에서 테이블 조인과 함께 구문을 올바르게 읽는 데 문제가 있습니다. 나는이 개 아래 테이블 ...MYSQL 가입 및 그룹화

primary_table 

agent_id | primary_area | key 
----------------------------- 
    10 |xx1   | 1 
    11 |xx2   | 2 
    12 |xx3   | 3 
etc... 


secondary_table 

agent_id | sec_area  | key 
----------------------------- 
    34 |xx1   | 5 
    37 |xx1   | 6 
    38 |xx7   | 8 
etc... 

내가하려고 모든 (예를 들어) 검색입니다 primary_area와 'sec_area'모두 값으로 xx1이있는 agent_id에 대한 두 테이블이있다. LIKE을 검색 기능으로 사용해야하며 사용자가 vale xx이있는 모든 것을 검색하려고 할 수 있습니다.

그런 다음 반환 된 데이터는 agent_id으로 그룹화되고 배열로 유지되어야합니다.

+0

원하는 결과가 무엇인가? –

+1

'SELECT * FROM primary_table WHERE agent_ID LIKE % $ search UNION SELECT * FROM secondary_table WHERE agent_ID LIKE % $ search' – AmazingDreams

+0

원하는 결과는 두 테이블에서 say xx1 검색과 일치하는 에이전트 ID를 선택한 다음 대리인 ID로 그룹화하십시오. – Sideshow

답변

1

어떨까요?

SELECT agent_id FROM primary_table WHERE primary_area LIKE "%1" 
UNION 
SELECT agent_id FROM secondary_table WHERE sec_area LIKE "%1" 

Comment: how would I group the results by agent_id using UNION

SELECT 
    p.id 
FROM 
    primary_table AS p 
JOIN 
    sec_table AS s 
ON 
    p.id=s.id 
WHERE 
    p.area LIKE "%1" AND s.area LIKE "%1" 

SQL Fiddle

+0

감사합니다 - UNION을 사용하여 agent_id로 결과를 그룹화하는 방법. – Sideshow

+1

@Sideshow를 고려하여 내 대답을 업데이트했습니다. SQL Fiddle을 확인할 수도 있습니다. – fedorqui