Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

économie de requêtes

2 réponses
Avatar
pascallerudulier
Bonjour =E0 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=E8re =E0, comme intitul=E9 en sujet, =E9conomiser su=
r
les requ=EAtes.

Le but est d'=E9tablir un lien entre deux champs, dans deux tables
diff=E9rentes, en un minimum de requ=EAtes (id=E9alement en une seule). Je
pars d'un exemple:

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

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

Supposons que les donn=E9es, concat=E9n=E9es (genre: [champs1]+"-"+
[champs2]), de la table 1 correspondent =E0 celles du champs a de la
table 2. Classiquement je cr=E9e, dans une requ=EAte, une expression fruit
de la concat=E9nation mentionn=E9e plus haut.

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

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

Total: 2 requ=EAtes.

Peut-on faire l'=E9conomie d'une requ=EAte et de lier, d=E8s la premi=E8re,
une expression =E0 un champs d'une autre table?

Question subsidiaire: Est-il possible (l=E0 j'ai conscience de pousser)
de lier, en une requ=EAte, une expression, fruit de la concat=E9nation de
deux champs (comme montr=E9e plus haut), =E0 une autre expression (fruit
d'une partie d'un champ) issue d'une autre table?

Exemple:

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

Quelqu'un, avant moi et avec succ=E8s, a-t'il/elle d=E9j=E0 planch=E9 sur l=
e
sujet? Ca m'=E9viterait la multiplication artificielle de requ=EAtes.

D'avance merci et bonne fin de weekend.
Pascal

2 réponses

Avatar
Gloops
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


Avatar
Michel__D
Bonjour,

a écrit dans le message de news:
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*';