2009-09-30 8 views
4

configuration:MySQL problème de requête

mysql> create table main(id integer unsigned); 

mysql> create table test1(id integer unsigned,body text); 
Query OK, 0 rows affected (0.84 sec) 

mysql> insert into main(id) value(1); 
Query OK, 1 row affected (0.16 sec) 

mysql> insert into test1(id,body) value(1,'something1'); 
Query OK, 1 row affected (0.27 sec) 

mysql> insert into test1(id,body) value(1,'something2'); 
Query OK, 1 row affected (0.00 sec) 

En utilisant

mysql> select main.id,body from main 
    -> left join test1 on main.id=test1.id 
    -> group by main.id; 

retours:

+------+------------+ 
| id | body  | 
+------+------------+ 
| 1 | something1 | 
+------+------------+ 
1 row in set (0.02 sec) 

Comment obtenir concaténation du corps de test1 avec espace commun, pour obtenir "something1 something2" ?

Répondre

3
SELECT main.id, GROUP_CONCAT(body SEPARATOR ' ') 
FROM main 
LEFT JOIN test1 on main.id=test1.id 
GROUP BY main.id 

Voir le documentation pour plus de détails.