2010-09-23 3 views
2

une table:Aide requête SQL

+-----+-----+----+ 
| Sym | Pos | Id | 
+-----+-----+----+ 
| a | 0 | 0 | 
| b | 1 | 0 | 
| c | 2 | 0 | 
| a | 0 | 1 | 
| d | 1 | 1 | 
| b | 0 | 2 | 
+-----+-----+----+ 

nécessité de construire à partir de cette ligne de table par Id, qui serait suivie pour Sym Pos. Dans ce cas, cela aurait:

+-----+-----+----+ 
| str | Pos | Id | 
+-----+-----+----+ 
| abc | 0 | 0 | 
| ad | 0 | 1 | 
| b | 0 | 2 | 
+-----+-----+----+ 

Merci!

+0

Quel est le but de la colonne 'Pos'. Devrait-il toujours contenir 0? Si ce n'est pas toujours zéro alors à quelle condition at-il une valeur différente. –

+0

Pos - symbole (Sym) position dans 'str' – Zoitc2014

+0

En fait, je voulais dire quel est le but de cette colonne * dans la sortie *, désolé de ne pas le rendre clair. –

Répondre

2

GROUP BY et la fonction d'agrégation spécifique MySQL GROUP_CONCAT:

SELECT GROUP_CONCAT(Sym ORDER BY Pos SEPARATOR '') AS str, Id 
FROM yourtable 
GROUP BY id 
+0

Merci. Ça marche! – Zoitc2014