次のテーブルがあります。
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 | x@xxx.co.co | 5112121212 |
| 2 | 8 | Financeiro | fin@y.net | 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 | x@xxx.co.co | 5112121212 |
| Teste | Pespi Cola | 2 | 8 | Financeiro | fin@y.net | 5012121212 |
+-------+------------+------+---------+------------+-------------+------------+
問題は、このようにクエリがのようにempresas
フィールドを繰り返すことです (実際のテーブルは例よりも大きいです!)。grupo
nome
すべてのデータを 1 行で受け取る方法を知りたいです。結果は次のようになります。
+-------+------------+------+---------+------------+-------------+------------+-------------+------------+
| nome | grupo | id | empresa | rotulo | email1 | telefone1 | email2 | telefone2 |
+-------+------------+------+---------+------------+-------------+------------+-------------+------------+
| Teste | Pespi Cola | 1 | 8 | Principal | x@xxx.co.co | 5112121212 | fin@y.net | 5012121212 |
+-------+------------+------+---------+------------+-------------+------------+-------------+------------+
そして、3 番目のempresas_contatos
行がある場合、クエリは ... を返しemail3
ますtelefone3
。
GROUP_CONCAT() を使用できますが、これに対する解決策を見つけたいと思っています。
前もって感謝します!