C'est une solution, je vais tester Je pensais pouvoir résoudre ce probléme par la BONNE syntaxe.
Merci du coup de main.
db
Le 23/09/2010 16:56, le Nordiste a écrit :
C'est une solution, je vais tester… Je pensais pouvoir résoudre ce probléme par la BONNE syntaxe.
(Sur l'air de "Il est pas frais mon poisson") : elle est pas bonne, ma syntaxe ? :-)
Plaisanterie à part, je ne suis pas sûr qu'il existe une bonne syntaxe pour trier une UNION avant d'en rajouter une autre. Mais peut-être les spécialistes ont-ils une solution.
db
Le 23/09/2010 16:56, le Nordiste a écrit :
C'est une solution, je vais tester…
Je pensais pouvoir résoudre ce probléme par la BONNE syntaxe.
(Sur l'air de "Il est pas frais mon poisson") : elle est pas bonne, ma
syntaxe ? :-)
Plaisanterie à part, je ne suis pas sûr qu'il existe une bonne syntaxe
pour trier une UNION avant d'en rajouter une autre. Mais peut-être les
spécialistes ont-ils une solution.
C'est une solution, je vais tester… Je pensais pouvoir résoudre ce probléme par la BONNE syntaxe.
(Sur l'air de "Il est pas frais mon poisson") : elle est pas bonne, ma syntaxe ? :-)
Plaisanterie à part, je ne suis pas sûr qu'il existe une bonne syntaxe pour trier une UNION avant d'en rajouter une autre. Mais peut-être les spécialistes ont-ils une solution.
db
3stone
Salut,
le Nordiste wrote:
Bonjour,
J'ai trois tables T_1, T_2 et T_3 avec le même nombre de champs ( sinon UNION impossible).
Je veux faire quelque chose comme :
(SELECT T_1.* FROM T_1…… UNION SELECT T_2.* FROM T_2…… ORDER BY T_1.champ_1) UNION SELECT T_3.* FROM T_3……
C'est à dire faire l'union ordonnée des deux premières tables, puis faire l'union avec la 3éme table, SANS retrier le résultat.
Une requête union porte bien son nom... et le tri se fait toujours sur toute la "pile" et nom par requête.
La seule solution est celle donnée, c'est à dire : - distinguer les résultats de chaque requête en ajoutant un champ (préférer un numérique pour sa rapidité de traitement) - trier sur ce champ, puis sur le champ secondaire.
donc, comme proposé :
SELECT 1 AS TRI, T_1.* FROM T_1 UNION SELECT 2 AS TRI, T_2.* FROM T_2 UNION SELECT 3 AS TRI, T_3.* FROM T_3 ORDER BY TRI, champ_1
J'ai trois tables T_1, T_2 et T_3 avec le même nombre de champs
( sinon UNION impossible).
Je veux faire quelque chose comme :
(SELECT T_1.* FROM T_1……
UNION
SELECT T_2.* FROM T_2……
ORDER BY T_1.champ_1)
UNION
SELECT T_3.* FROM T_3……
C'est à dire faire l'union ordonnée des deux premières tables,
puis faire l'union avec la 3éme table, SANS retrier le résultat.
Une requête union porte bien son nom... et le tri se fait
toujours sur toute la "pile" et nom par requête.
La seule solution est celle donnée, c'est à dire :
- distinguer les résultats de chaque requête en ajoutant un champ
(préférer un numérique pour sa rapidité de traitement)
- trier sur ce champ, puis sur le champ secondaire.
donc, comme proposé :
SELECT 1 AS TRI, T_1.* FROM T_1
UNION
SELECT 2 AS TRI, T_2.* FROM T_2
UNION
SELECT 3 AS TRI, T_3.* FROM T_3
ORDER BY TRI, champ_1
J'ai trois tables T_1, T_2 et T_3 avec le même nombre de champs ( sinon UNION impossible).
Je veux faire quelque chose comme :
(SELECT T_1.* FROM T_1…… UNION SELECT T_2.* FROM T_2…… ORDER BY T_1.champ_1) UNION SELECT T_3.* FROM T_3……
C'est à dire faire l'union ordonnée des deux premières tables, puis faire l'union avec la 3éme table, SANS retrier le résultat.
Une requête union porte bien son nom... et le tri se fait toujours sur toute la "pile" et nom par requête.
La seule solution est celle donnée, c'est à dire : - distinguer les résultats de chaque requête en ajoutant un champ (préférer un numérique pour sa rapidité de traitement) - trier sur ce champ, puis sur le champ secondaire.
donc, comme proposé :
SELECT 1 AS TRI, T_1.* FROM T_1 UNION SELECT 2 AS TRI, T_2.* FROM T_2 UNION SELECT 3 AS TRI, T_3.* FROM T_3 ORDER BY TRI, champ_1
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette idée : Une première requête avec les deux 1ères tables triées; puis une seconde UNION à partir de cette 1ère requête et de la 3ème table.
Cdt, Blaise
"le Nordiste" a écrit dans le message de news:
Bonjour,
J'ai trois tables T_1, T_2 et T_3 avec le même nombre de champs ( sinon UNION impossible).
Je veux faire quelque chose comme :
(SELECT T_1.* FROM T_1…… UNION SELECT T_2.* FROM T_2…… ORDER BY T_1.champ_1) UNION SELECT T_3.* FROM T_3……
C'est à dire faire l'union ordonnée des deux premières tables, puis faire l'union avec la 3éme table, SANS retrier le résultat.
Merci pour votre aide,
Bonjour le Nordiste,
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette
idée :
Une première requête avec les deux 1ères tables triées;
puis une seconde UNION à partir de cette 1ère requête et de la 3ème table.
Cdt, Blaise
"le Nordiste" <jean-paul.bataille@sfr.com> a écrit dans le message de news:
97c201cd-43b8-44a3-91c8-eb2a02859ef6@t7g2000vbj.googlegroups.com...
Bonjour,
J'ai trois tables T_1, T_2 et T_3 avec le même nombre de champs
( sinon UNION impossible).
Je veux faire quelque chose comme :
(SELECT T_1.* FROM T_1……
UNION
SELECT T_2.* FROM T_2……
ORDER BY T_1.champ_1)
UNION
SELECT T_3.* FROM T_3……
C'est à dire faire l'union ordonnée des deux premières tables,
puis faire l'union avec la 3éme table, SANS retrier le résultat.
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette idée : Une première requête avec les deux 1ères tables triées; puis une seconde UNION à partir de cette 1ère requête et de la 3ème table.
Cdt, Blaise
"le Nordiste" a écrit dans le message de news:
Bonjour,
J'ai trois tables T_1, T_2 et T_3 avec le même nombre de champs ( sinon UNION impossible).
Je veux faire quelque chose comme :
(SELECT T_1.* FROM T_1…… UNION SELECT T_2.* FROM T_2…… ORDER BY T_1.champ_1) UNION SELECT T_3.* FROM T_3……
C'est à dire faire l'union ordonnée des deux premières tables, puis faire l'union avec la 3éme table, SANS retrier le résultat.
Merci pour votre aide,
le Nordiste
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette idée : Une première requête avec les deux 1ères tables triées; puis une seconde UNION à partir de cette 1ère requête et de la 3è me table.
C'est ce que je faisais mais comme dit plus haut par 3stone "Une requête union porte bien son nom... et le tri se fait toujours sur toute la "pile" et nom par requête."
Moi qui croyais que les parenthéses marquaient les limites d'un traitement,
(SELECT T_1.* FROM T_1 UNION SELECT T_2.* FROM T_2 ORDER BY T_1.champ_1) fin du premier UNION et donc du tri
UNION SELECT T_3.* FROM T_3 second UNION SANS TRI
pauvre naïf que je suis
merci de vos contributions
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette
idée :
Une première requête avec les deux 1ères tables triées;
puis une seconde UNION à partir de cette 1ère requête et de la 3è me table.
C'est ce que je faisais mais comme dit plus haut par 3stone
"Une requête union porte bien son nom... et le tri se fait
toujours sur toute la "pile" et nom par requête."
Moi qui croyais que les parenthéses marquaient les limites d'un
traitement,
(SELECT T_1.* FROM T_1
UNION
SELECT T_2.* FROM T_2
ORDER BY T_1.champ_1) fin du premier UNION et donc du tri
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette idée : Une première requête avec les deux 1ères tables triées; puis une seconde UNION à partir de cette 1ère requête et de la 3è me table.
C'est ce que je faisais mais comme dit plus haut par 3stone "Une requête union porte bien son nom... et le tri se fait toujours sur toute la "pile" et nom par requête."
Moi qui croyais que les parenthéses marquaient les limites d'un traitement,
(SELECT T_1.* FROM T_1 UNION SELECT T_2.* FROM T_2 ORDER BY T_1.champ_1) fin du premier UNION et donc du tri
UNION SELECT T_3.* FROM T_3 second UNION SANS TRI
pauvre naïf que je suis
merci de vos contributions
blaise cacramp
3stone a *toujours* raison ;-)
"le Nordiste" a écrit dans le message de news:
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette idée : Une première requête avec les deux 1ères tables triées; puis une seconde UNION à partir de cette 1ère requête et de la 3ème table.
C'est ce que je faisais mais comme dit plus haut par 3stone "Une requête union porte bien son nom... et le tri se fait toujours sur toute la "pile" et nom par requête."
Moi qui croyais que les parenthéses marquaient les limites d'un traitement,
(SELECT T_1.* FROM T_1…… UNION SELECT T_2.* FROM T_2… ORDER BY T_1.champ_1) fin du premier UNION et donc du tri
UNION SELECT T_3.* FROM T_3…… second UNION SANS TRI
pauvre naïf que je suis…
merci de vos contributions
3stone a *toujours* raison ;-)
"le Nordiste" <jean-paul.bataille@sfr.com> a écrit dans le message de news:
06944b06-b987-47be-ba3a-610e3a1ca6aa@f25g2000yqc.googlegroups.com...
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose
cette
idée :
Une première requête avec les deux 1ères tables triées;
puis une seconde UNION à partir de cette 1ère requête et de la 3ème table.
C'est ce que je faisais mais comme dit plus haut par 3stone
"Une requête union porte bien son nom... et le tri se fait
toujours sur toute la "pile" et nom par requête."
Moi qui croyais que les parenthéses marquaient les limites d'un
traitement,
(SELECT T_1.* FROM T_1……
UNION
SELECT T_2.* FROM T_2…
ORDER BY T_1.champ_1) fin du premier UNION et donc du tri
UNION
SELECT T_3.* FROM T_3…… second UNION SANS TRI
Je ne suis pas du tout spécialiste des requêtes UNION mais je propose cette idée : Une première requête avec les deux 1ères tables triées; puis une seconde UNION à partir de cette 1ère requête et de la 3ème table.
C'est ce que je faisais mais comme dit plus haut par 3stone "Une requête union porte bien son nom... et le tri se fait toujours sur toute la "pile" et nom par requête."
Moi qui croyais que les parenthéses marquaient les limites d'un traitement,
(SELECT T_1.* FROM T_1…… UNION SELECT T_2.* FROM T_2… ORDER BY T_1.champ_1) fin du premier UNION et donc du tri
UNION SELECT T_3.* FROM T_3…… second UNION SANS TRI