2012-01-09 2 views
1

안녕하세요 얘들 아 물어봐서 미안하지만이 질문에 도움이 필요해. 나는 다른 해결책으로 어지럽 혔어.하지만 지금까지는 해결할 수 없었다.많은 mysql 쿼리

customer, figures, noteslender이라는 4 개의 테이블이 있습니다. 그들 모두는 reference이라는 필드를 가지고 있습니다. 나는이 필드들을 연결하기 위해 사용하고 있습니다. 고객은 기본 테이블이고 그래서 내가 할 수있는 각 고객에 대한 수치 테이블에서 하나의 레코드 만이 :

그러나
select * From customer, figures 
where customer.reference = figures.reference 

, 각 고객에 대해 여러 노트와 대출 기록이 될 수있다. 하나의 레코드 만 표시하도록 링크하려면 어떻게해야합니까? 당신은 group_concat() 사용할 수 있습니다

reference, name, figures, lender 1, lender 2, note 1, note 2, note 3 
+0

나에게 CTE 작업과 같은 소리가납니다. – Alex

답변

1

:로

이상적으로는, 그것을 표시하는 방법이있을 것입니다 테이블의 각 필드 name을 가지고 있다고 가정

SELECT customer.reference, customer.name, figures.name, 
GROUP_CONCAT(DISTINCT lender.name), 
GROUP_CONCAT(DISTINCT notes.name) 
FROM customer 
JOIN figures ON figures.reference = customer.reference 
LEFT JOIN lender ON lender.reference = customer.reference 
LEFT JOIN notes ON notes.reference = customer.reference 
GROUP BY customer.reference; 

을, 당신은 그것을 변경해야 열이 무엇이든간에