MySql: Fusionner champs et lignes

Fermé
Aloa77 - 10 févr. 2011 à 12:27
 Aloa77 - 10 févr. 2011 à 13:59
Bonjour,

J'ai une table qui est représenté comme ceci suite à l'union de deux requête:

id name value1 value2

1 toto null 10
1 toto 15 null
2 tata null 20
2 tata 25 null
3 titi null 30
4 tutu 25 null

Et je voudrais la retrouver comme ceci:

id name value1 value2

1 toto 15 10
2 tata 25 20
3 titi null 30
4 tutu 25 null

Merci d'avance pour votre aide !!!

4 réponses

wazertyuiop Messages postés 32 Date d'inscription jeudi 10 février 2011 Statut Membre Dernière intervention 18 février 2011 1
10 févr. 2011 à 12:35
essai d'expliquer mieux car ca m'étonnerai que tu ai une table ou plusieurs clés primaires sont identiques
0
Comme je l'ai précisé, c'est le résultat d'une UNION de deux requêtes.
Je ne pense pas que UNION s'occupe des clés primaire, il assemble juste le résultat de mes tables.
0
wazertyuiop Messages postés 32 Date d'inscription jeudi 10 février 2011 Statut Membre Dernière intervention 18 février 2011 1
Modifié par wazertyuiop le 10/02/2011 à 13:27
Le problème c'est que la personne ne va te répondre si tu ne t'explique pas mieux que ca, tu nous dit j'ai une table, : qui ne peut pas en être une puisque sinon il n'y aurait pas de doublons de clés primaires.
ensuite tu nous dit que c'est le résultat d'une union et tu nous dit que tu veux avoir ca a la place de ca.
alors on ne sait absolument pas ce que tu veux, je suppose que tu ne veux pas qu'on te donne une requête pour arriver a ce résultat sinon tu nous aurais mi les tables ou au moins ta requêtes union.
La question est simple, que veux-tu ? (et je ne pense pas être le seul à ne pas comprendre sinon tu aurais déjà eu des réponses)
0
Excusez moi si ma question n'est pas assez claire:
Concrètement, je voudrais retrouvez mes value1 et value2 sur la même ligne.

Mes doublons, je ne les invente pas. J'utilise MySQL Query Browser pour tester le résultat de mes requêtes et ainsi voir le tableau retourné.

Ma requête est un peut lourde... J'ai essayé de vous la simplifier.

(SELECT

T1.bug_id,
T2.realname,
(T1.new_value-T1.old_value) as value1,
(null) as value2

FROM T1,T2

where field_name='MaValue1' AND Date(date_modified) = '2010-12-13'

AND T1.user_id = T2.id

AND bug_id IN (

select id

from T3

where project_id=2)

order by T2.realname)

UNION

(SELECT

T1.bug_id,
T2.realname,
(null) as value1,
(T1.new_value-T1.old_value) as value2

FROM T1,T2

where field_name='MaValue2' AND Date(date_modified) = '2010-12-13'

AND T1.user_id = T2.id

AND bug_id IN (

select id

from T3

where project_id=2))

 ;


Ma première requête réalise un calcul pour ma value1
filtre sur:
where field_name='MaValue1'

Ma seconde requête réalise un calcul pour ma value2
filtre sur:
where field_name='MaValue2'

Voila pourquoi je réalise une UNION.
0