Bonjour,
Petite question j'ai deux tables h1 et h2 et j'aimerais obtenir l'intersection des deux tables, savez-vous comment faire car INTERSECT n'existe pas pour flamerobine
Merci pour les réponses
Thierry
Bonjour,
Petite question j'ai deux tables h1 et h2 et j'aimerais obtenir l'intersection des deux tables, savez-vous comment faire car INTERSECT n'existe pas pour flamerobine
Merci pour les réponses
Thierry
Bonjour,
J'ai trouvé ...pour remplacer la fonction sql INTERSECT qui n'existe pas avec flamrobin....
pour table H1 et table H2 avec même structure :
NUMERO integer
La réponse est :
CQFD
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM H1 WHERE H1.NUMERO IN (SELECT NUMERO FROM H2);
Bonjour,
Pour information, ce n'est pas Flamerobin qui ne possède pas INTERSECT, mais la base de données que tu utilises. Tu utiliserais IBExpert, il te faudrait rédiger ton code comme avec Flamerobin.
A ma connaissance, la plupart des bases de données n'ont pas INTERSECT implanté. Il en est d'ailleurs ainsi pour Firebird et Interbase.
A+
Bonjour ,
Une intersection (si mes lectures sont correctes) c'est l'ensemble des lignes de deux tables où toutes les colonnes sont égales
la réponse
est donc inexacte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM H1 WHERE H1.NUMERO IN (SELECT NUMERO FROM H2);
Dans ce cas il s'agit d'un jointure (interne) je suggère plutôt la syntaxe
ceci étant , je ne suis pas trop pour le H1.* , il vaut mieux indiquer les différentes colonnes que l'on veut récupérer
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT H1.* FROM H1 INNER JOIN H2 ON H1.NUMERO=H2.NUMERO
Quelle est la plus rapide des 2 requêtes ci-dessus ?
une vrai intersection avec Firebird serait plutôt
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT H1.NUMERO,H1.COL2,H1.COL3,.... FROM H1 INNER JOIN H2 ON H1.NUMERO=H2.NUMERO AND H1.COL2=H2.COL2 AND H1.COL3=H2.COL3 ....
Bonjour,
@SergioMaster
Je suis tout à fait d'accord avec toi. Il faut dire que j'avais lu en diagonal le 2ème message de @thierry maesen.Une intersection (si mes lectures sont correctes) c'est l'ensemble des lignes de deux tables où toutes les colonnes sont égales
la réponse
Code :
Sélectionner tout - Visualiser dans une fenêtre à part
est donc inexacte
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 SELECT * FROM H1 WHERE H1.NUMERO IN (SELECT NUMERO FROM H2);
Tu réponds parfaitement à la question dans la 2ème partie de ton message.
Notre ami @thierry maesen devrait consulter le tutorial de SQLPro qui traite des ensembles en SQL http://sqlpro.developpez.com/cours/s...embles/#L3.5.3
A+
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager