économie de requêtes

Le
pascallerudulier
Bonjour à tous et toutes et bon Dimanche,

Je me demande si je suis en train de perdre mon temps ou si, au
contraire, il y a matière à, comme intitulé en sujet, économiser su=
r
les requêtes.

Le but est d'établir un lien entre deux champs, dans deux tables
différentes, en un minimum de requêtes (idéalement en une seule). Je
pars d'un exemple:

table 1: champs 1, 2, n

table 2: champs a, b, z

Supposons que les données, concaténées (genre: [champs1]+"-"+
[champs2]), de la table 1 correspondent à celles du champs a de la
table 2. Classiquement je crée, dans une requête, une expression fruit
de la concaténation mentionnée plus haut.

requête 1: expr: [champs1]+"-"+[champs2] plus tous les autres champs
de la table 1 que je souhaite.

puis requête 2: je lie (du verbe lier) l'expression de la requête 1
avec le champs a de la table 2.

Total: 2 requêtes.

Peut-on faire l'économie d'une requête et de lier, dès la première,
une expression à un champs d'une autre table?

Question subsidiaire: Est-il possible (là j'ai conscience de pousser)
de lier, en une requête, une expression, fruit de la concaténation de
deux champs (comme montrée plus haut), à une autre expression (fruit
d'une partie d'un champ) issue d'une autre table?

Exemple:

expr: [champs1]+"-"+[champs2] de la table 1 lié(e?) à champs
a de la table 2, à la condition que 'expr' se trouve, tout ou
partie, dans ce champs.

Quelqu'un, avant moi et avec succès, a-t'il/elle déjà planché sur l=
e
sujet? Ca m'éviterait la multiplication artificielle de requêtes.

D'avance merci et bonne fin de weekend.
Pascal
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #16569341
Bonjour,

Serait-ce que ce que tu cherches à faire serait de ce style ?

SELECT Table1.Champ1 + "-" + Table1.Champ2 As ChampA INTO Table2

étant entendu que cette requête crée la table Table2, et qu'elle do it en
fournir tous les champs (là je n'en ai mis qu'un). Si Table2 existe
déjà, c'est du côté de INSERT INTO qu'il faut chercher.

Attention, par définition d'une table, tu obtiens une copie du résult at
au moment de l'exécution de la requête. Si Champ1 change, ça ne fer a pas
changer ChampA, sinon c'est une requête qu'il faut utiliser et non une
table. Enfin je dis ça juste pour être sûr que nous parlons de la m ême
chose ...
_________________________________________________________
a écrit, le 17/08/2008 13:11 :
Bonjour à tous et toutes et bon Dimanche,

Je me demande si je suis en train de perdre mon temps ou si, au
contraire, il y a matière à, comme intitulé en sujet, économise r sur
les requêtes.

Le but est d'établir un lien entre deux champs, dans deux tables
différentes, en un minimum de requêtes (idéalement en une seule). Je
pars d'un exemple:

table 1: champs 1, 2, ...n

table 2: champs a, b, ... z

Supposons que les données, concaténées (genre: [champs1]+"-"+
[champs2]), de la table 1 correspondent à celles du champs a de la
table 2. Classiquement je crée, dans une requête, une expression fr uit
de la concaténation mentionnée plus haut.

requête 1: expr: [champs1]+"-"+[champs2] plus tous les autres champ s
de la table 1 que je souhaite.

puis requête 2: je lie (du verbe lier) l'expression de la requête 1
avec le champs a de la table 2.

Total: 2 requêtes.

Peut-on faire l'économie d'une requête et de lier, dès la premiè re,
une expression à un champs d'une autre table?

Question subsidiaire: Est-il possible (là j'ai conscience de pousser)
de lier, en une requête, une expression, fruit de la concaténation de
deux champs (comme montrée plus haut), à une autre expression (frui t
d'une partie d'un champ) issue d'une autre table?

Exemple:

expr: [champs1]+"-"+[champs2] de la table 1 lié(e?) à champs
a de la table 2, à la condition que 'expr' se trouve, tout ou
partie, dans ce champs.

Quelqu'un, avant moi et avec succès, a-t'il/elle déjà planché s ur le
sujet? Ca m'éviterait la multiplication artificielle de requêtes.

D'avance merci et bonne fin de weekend.
Pascal


Michel__D
Le #16569941
Bonjour,

Bonjour à tous et toutes et bon Dimanche,

Je me demande si je suis en train de perdre mon temps ou si, au
contraire, il y a matière à, comme intitulé en sujet, économiser sur
les requêtes.

Le but est d'établir un lien entre deux champs, dans deux tables
différentes, en un minimum de requêtes (idéalement en une seule). Je
pars d'un exemple:

table 1: champs 1, 2, ...n

table 2: champs a, b, ... z

Supposons que les données, concaténées (genre: [champs1]+"-"+
[champs2]), de la table 1 correspondent à celles du champs a de la
table 2. Classiquement je crée, dans une requête, une expression fruit
de la concaténation mentionnée plus haut.

requête 1: expr: [champs1]+"-"+[champs2] plus tous les autres champs
de la table 1 que je souhaite.

puis requête 2: je lie (du verbe lier) l'expression de la requête 1
avec le champs a de la table 2.

Total: 2 requêtes.

Peut-on faire l'économie d'une requête et de lier, dès la première,
une expression à un champs d'une autre table?

Question subsidiaire: Est-il possible (là j'ai conscience de pousser)
de lier, en une requête, une expression, fruit de la concaténation de
deux champs (comme montrée plus haut), à une autre expression (fruit
d'une partie d'un champ) issue d'une autre table?

Exemple:

expr: [champs1]+"-"+[champs2] de la table 1 lié(e?) à champs
a de la table 2, à la condition que 'expr' se trouve, tout ou
partie, dans ce champs.

Quelqu'un, avant moi et avec succès, a-t'il/elle déjà planché sur le
sujet? Ca m'éviterait la multiplication artificielle de requêtes.

D'avance merci et bonne fin de weekend.
Pascal
---------------------------------------------------------

Je suppose que tu veux un truc de ce style (qui n'est pas trés
respectueux des régles de définition d'une base de données).

SELECT T1.*
FROM LaTable1 AS T1 INNER JOIN LaTable2 AS T2
ON T1.LeChamp1 & "-" & T1.LeChamp2=T2.LeChampA
WHERE T2.LeChampA Like '*expr*';
Publicité
Poster une réponse
Anonyme