사용하여 가입 왼쪽 :MySQL은 하나의 행
mysql> select * from `empresas`;
+----+-------+-----------+-------+------------+----------------+
| id | tipo | logotipo | nome | grupo | cnpj |
+----+-------+-----------+-------+------------+----------------+
| 8 | Lazer | troll.jpg | Teste | Pespi Cola | 99999313412312 |
+----+-------+-----------+-------+------------+----------------+
mysql> select * from `empresas_contatos`;
+----+---------+------------+--------------+------------+
| id | empresa | rotulo | email | telefone |
+----+---------+------------+--------------+------------+
| 1 | 8 | Principal | [email protected] | 5112121212 |
| 2 | 8 | Financeiro | [email protected] | 5012121212 |
+----+---------+------------+--------------+------------+
을 그리고는 다음과 같이 모두 가입 왼쪽으로 사용하고 싶지 :
mysql> select `e`.`nome`, `e`.`grupo`, `c`.* from `empresas` `e`
-> left join `empresas_contatos` `c` on
-> `c` . `empresa` = `e` . `id`;
+-------+------------+------+---------+------------+-------------+------------+
| nome | grupo | id | empresa | rotulo | email | telefone |
+-------+------------+------+---------+------------+-------------+------------+
| Teste | Pespi Cola | 1 | 8 | Principal | [email protected] | 5112121212 |
| Teste | Pespi Cola | 2 | 8 | Financeiro | [email protected] | 5012121212 |
+-------+------------+------+---------+------------+-------------+------------+
문제는 그 이런 식으로 쿼리는 grupo
, nome
과 같이 empresas
필드를 반복합니다 (실제 테이블이 예제보다 큽니다!).
모든 데이터를 한 줄로받을 수있는 방법을 알고 싶습니다. 결과는 그런 일해야한다 :
+-------+------------+------+---------+------------+-------------+------------+-------------+------------+
| nome | grupo | id | empresa | rotulo | email1 | telefone1 | email2 | telefone2 |
+-------+------------+------+---------+------------+-------------+------------+-------------+------------+
| Teste | Pespi Cola | 1 | 8 | Principal | [email protected] | 5112121212 | [email protected] | 5012121212 |
+-------+------------+------+---------+------------+-------------+------------+-------------+------------+
를 제 3 empresas_contatos
행이있는 경우, 쿼리가 반환 email3
, telefone3
...
내가 GROUP_CONCAT()를 사용할 수 있지만 궁금 해요 이를위한 해결책을 찾으십시오.
미리 감사드립니다.
굉장! 고마워요! 귀하의 회신을 기반으로 이것을 만들었습니다 : http://sqlfiddle.com/#!2/b8c4a/2 하지만이 쿼리는 많은 복사 및 붙여 넣기가 필요하므로 100 % 만족하지는 않습니다. hehe. 더 "자동"으로 만들기 위해 쿼리를 향상 시키려고 노력할 것이지만 정말 대답에 감사드립니다. 고맙습니다! –
@MatheusTavares - np, 기꺼이 도와 드리겠습니다. MySQL의 피벗 테이블은 다른 RDBMS보다 약간 어렵습니다. 행운을 빌어 요. – sgeddes