MySQL - Query combiner les lignes avec le même id et de garder tous les accès pour que les id, mais comme un seul enregistrement

Je travaille sur une table dans une base de données mysql être tenue localement sur un serveur wamp, je suis en utilisant le phpmyadmin de la zone dans wamp pour exécuter les requêtes sur. Je suis en train d'essayer d'obtenir les données pour effectuer les opérations suivantes:

Peut aider quelqu'un j'ai une table avec un nombre d'enregistrements pour les plantes. Une plante peut avoir un certain nombre de noms de la table montre ce que les différents enregistrements. La table est appelé new_plantsname

plantid name
1       tree
1       rose
2       bush
3       tree
3       bush
3       rose

cela continue de plus de 3000 dossiers

ce que je veux c'est de combiner les enregistrements avec le même plantid et de montrer les différents noms dans différentes colonnes:

plantid name1 name2 name3 ...
1       tree  rose  NULL
2       shrub NULL  NULL
3       tree  rose  bush 

etc

D'un coup d'œil, je crois, une plante n'a pas plus de 4 noms.

Peut-on m'aider à la requête pour ce faire. Je tiens également à enregistrer les résultats dans une nouvelle table

Quelqu'un m'a donné les informations suivantes pour la réponse:

select plantid,
  max(case when nameRn = 'name1' then name end) Name1,
  max(case when nameRn = 'name2' then name end) Name2,
  max(case when nameRn = 'name3' then name end) Name3,
  max(case when nameRn = 'name4' then name end) Name4
from
(
  select plantid, name,
      concat('name', @num := if(@plantid = `plantid`, @num + 1, 1)) as nameRn,
      @plantid := `plantid` as dummy
  from
  (
    select plantid, name, @rn:=@rn+1 overall_row_num
    from yourtable, (SELECT @rn:=0) r
  ) x
  order by plantid, overall_row_num
) src
group by plantid;

Cet air de fonctionner, bien que pas d'erreurs mais cela n'a pas combiner les enregistrements qu'elle n'a gardé que le nom du premier enregistrement avec l'id n'est pas le reste.
DONNÉES UTILISÉES:

plantid     name
    1       tree
    1       rose
    2       tree
    3       rose
    3       bush
    3       rose

RÉSULTATS:

MySQL - Query combiner les lignes avec le même id et de garder tous les accès pour que les id, mais comme un seul enregistrement

Peut aider quelqu'

Oui je n'ai cela fonctionne ici, mais quand je le lance dans le phpmyadmin de wamp, il ne donne pas de résultat, il ne me donne que le nom de la première et met la valeur null pour le reste
Id suggèrent alors vous navez pas eu la même structure de données que vous dites ici. En conséquence, je pense que c'est à vous de travailler sur la prochaine étape. L'exemple donné précédemment fonctionne bien dans la démo ci-dessus. À défaut, peut-être que phpmyadmin n'est pas en mesure de traiter la requête correctement. Avez-vous essayé d'exécuter la requête dans un autre outil d'admin???

OriginalL'auteur zaratjlc | 2012-11-16