2012-11-12 3 views
2

MySQL 데이터베이스에 쿼리를 가져와 MySQL 테이블 (정보)의 네 가지 정보 필드를 반환 한 다음 PHP의 json_encode() 함수를 사용하여 JSON을 인코딩합니다. 반환하는 필드 중 두 개는 "staffMember"및 "lineManager"이며, 이는 (별도의) users 테이블에있는 해당 사용자의 ID와 관련된 정수를 반환합니다.별도의 쿼리 결과를 JSON 인코딩 된 배열에 추가

id is 1 
staffMember is 14 
lineManager is 12 
description is this is a description 

등 모든 행에 대해 :

내 쿼리 (테이블 형식) 다음을 반환합니다.

14

은 (예를 들어 위의 경우) 같은 것을 할 것입니다 사용자 테이블의 행을 의미한다 :

id is 14 
firstname is dave 
secondname is jones 

내 질문 그러므로, 나는의 JSON 부분을 얻을 수있는 방법 14 대신에 "dave jones"를 반환하라는 쿼리입니까? 정보가 MySQL의 동일한 테이블에 저장되지 않기 때문입니다.

+0

아마도 일부 유형의 조인을 변경합니다. 우리가 당신을 도울 수 있도록 여기에 게시 할 수 있습니까? –

+0

Google "SELECT JOIN MYSQL" – dda

답변

0

사용 LEFT는

SELECT a.id, CONCAT(b.firstname, ' ', b.secondname) AS staffMember, a.lineManager, a.description 
    FROM a 
    LEFT JOIN b ON (a.staffMember = b.id) 

경우처럼 데이터베이스 요청에 가입 a와 b - 테이블 이름 덧글, 당신은 확실히 당신의 SQL에 이름 및 성 필드를 추가 할 것입니다 언급 한 바와 같이

+0

정말 대단합니다 - 완벽하게 작동합니다 - 도와 주셔서 대단히 감사합니다. – user1818517

+0

linemanager 정수 (같은 사용자 테이블을 참조)에 대해서도 같은 프로세스를 반복하도록 이것을 확장하고 싶다면 달성 할 수 있습니까? 같은 테이블에 두 개의 왼쪽 조인을 가질 수는 없지만 여러 필드가있을 수 있다는 것을 이해합니다. 유니온 쿼리 일종인가요? 그것은 조금 이상하지만, 당신이 제공 할 수있는 도움에 대해 매우 감사 할 것입니다. – user1818517

+0

두 개의 왼쪽 조인을 사용할 수 있습니다. 문제 없습니다. – Ziumin

0

결과 집합입니다. 이름 및 성 데이터가있는 테이블로 쿼리를 JOIN으로 변경하여이 작업을 수행 할 수 있습니다. 조인의 "ON"절은 두 테이블에 공통된 ID입니다. 예는 다음과 같습니다.

SELECT * FROM yourdb.table1 T1 LEFT JOIN yourdb.table2 T2 ON T1.staffMember = T2.id; 
관련 문제