Page 1 sur 1

regrouper deux colonnes en une

Posté : 17 juil. 2019, 10:54
par neomega
bonjour,
je cherche a regrouper 2 colonnes en 1

ex:

repere1 | repere2
--------------------------
1 | 1
2 | 3
3 | 4
5 | 5

etc...

et je souhaiterais récupérer :

1
2
3
4
5
etc..

merci d'avance pour votre aide

Re: regrouper deux colonnes en une

Posté : 17 juil. 2019, 12:08
par yann18
bonjour,
Une union est tout a fait possible pour regrouper les colonnes.

Code : Tout sélectionner

SELECT repere1 FROM la_table UNION SELECT repere2 FROM la_table

Re: regrouper deux colonnes en une

Posté : 17 juil. 2019, 13:38
par neomega
AVEC CETTE SOLUTION J'AI CE RÉSULTAT
1
2
3
7
5
6
4
11
8
9
10
06
15
12
13
14
19
17
16
18
20
21
22
25
24
021
23
28
MAIS PAS DANS L'ORDRE

Re: regrouper deux colonnes en une

Posté : 17 juil. 2019, 14:15
par yann18
tu peux trier avec order by

Code : Tout sélectionner

(SELECT repere1 AS repere FROM la_table) UNION (SELECT repere2 AS repere FROM la_table) ORDER BY repere

Re: regrouper deux colonnes en une

Posté : 17 juil. 2019, 15:57
par neomega
meme avec ceci :

1
10
11
12
13
14
15
16
17
18
19
2
20
21
22
23
24
25
26
27
28
29
3
30
31
32
36
37
38
39
4
5
6
7
8
9

voici mon code réel :
(SELECT  `semaine_A` AS semaine FROM calendrier WHERE  `semaine_A` !=0 )
UNION
 (SELECT  `semaine_B` AS semaine FROM calendrier WHERE  `semaine_B` !=0 )
ORDER BY semaine ASC

Re: regrouper deux colonnes en une

Posté : 17 juil. 2019, 16:12
par or 1

Re: regrouper deux colonnes en une

Posté : 17 juil. 2019, 16:50
par yann18
est-ce-que semaine_A et semaine_B ne seraient pas par hasard des varchar ? si c'est la cas tu peux caster en int soit utilisant l’opérateur CAST soit en additionnant semaine par 0( order by semaine+0 ).

au passage les parenthèses ne sont pas obligatoires.
sur quelle version de mysql exécute-tu ta requête?

Un exemple similaire sur
https://www.w3schools.com/sql/sql_union.asp

Re: regrouper deux colonnes en une

Posté : 18 juil. 2019, 08:08
par neomega
bonjour,

mes champs était bien en VARCHAR la solution + 0 marche parfaitement

la version ou je fait mes test est 3.5.2.2

merci beaucoup pour ton aide et tes explication très précise

Re: [RESOLU] regrouper deux colonnes en une

Posté : 18 juil. 2019, 17:52
par yann18
Pour ne pas avoir à faire le trans-typage de varchar vers int, l’idéal serait de choisir un type mysql compatible par rapport à la donnée que tu veux stocker. Cela te facilite grandement pour effectuer des calculs, des tris et surtout apporte un gain de performance. Dans ton cas des types comme SMALLINT, DATE seraient plus appropriés.


la lecture de tes 2 derniers messages laissent penser que les 2 colonnes(semaine_A, semaine_B) n'ont pas leur place dans la table où elles se trouvent mais devraient plutôt être dans une nouvelle table qui comporterait qu'une seule colonne des semaines.

Code : Tout sélectionner

semaine(id, numero ) //stocke toutes les semaines activite(id, titre, semaine_id) // où semaine_id représente le numéro de la semaine
A l'aide d'une requête sql avec jointure entre les 2 tables, on peux facilement récupérer toutes les semaines.