Probleme SQL sur Left JOIN
Stagiaire WDF
Inscrit:
30/03/2004 16:11
Post(s): 6
Bonjour à tous, j'ai besoin d'un coup de main sur ce truc,
il me semble que c'est un bug Windev
j'utilise une base HF, en Windev 8
J'ai 3 (tables) fichiers TN1, TN2, TN3, pour définir une arborescence dans un arbre.
TN1 avec des (champs) rubriques IDT1 et N1
TN2 avec des (champs) rubriques IDT2 , RefN1 et N2
TN3 avec des (champs) rubriques IDT3 , ReNT2 et N3

Données de T1:
1,ligne 1-1
2,ligne 1-2
3,ligne 1-3

Données de T2:
1,1,ligne 2-1
2,2,ligne 2-2

Données de T3:
1,1,ligne 3-1

Je fais une requete sur ces données et j'obtiens
ligne 1-1,ligne 2-1,ligne 3-1
ligne 1-2,ligne 2-2,---------
ligne 1-3, --------,ligne 3-1

Que vient faire ligne 1-3, --------,ligne 3-1 ?????

Avec 4 tables suivant la même idée, c'est encore pire,la notion de left Join disparait completement

Le code SQl est le suivant:
SELECT TN1.N1 AS N1, TN2.N2 AS N2, TN3.N3 AS N3
FROM TN1 LEFT OUTER JOIN TN2 ON TN1.IDTN1 = TN2.RefN1,
TN2 LEFT OUTER JOIN TN3 ON TN2.IDTN2 = TN3.RefN2

Si quelqu'un a une idée..
Merci
Michel, Montréal

Contribution le : 24/03/2005 14:00
Créer un fichier PDF de la contribution Imprimer


Re: Probleme SQL sur Left JOIN
Developpeur WDF
Inscrit:
24/11/2003 10:38
De Dieppe
Post(s): 118
BOn effectivement je viens de faire le test en mysql, ca devrait fonctionner.

les tables :
CREATE TABLE `tn1` (
  `idtn1` int(11) NOT NULL auto_increment,
  `libtn1` varchar(10) NOT NULL default '',
  KEY `idtn1` (`idtn1`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `tn1` VALUES (1, 'ligne 1-1');
INSERT INTO `tn1` VALUES (2, 'ligne 1-2');
INSERT INTO `tn1` VALUES (3, 'ligne 1-3');

CREATE TABLE `tn2` (
  `idtn2` int(11) NOT NULL auto_increment,
  `libtn2` varchar(20) NOT NULL default '',
  `idtn1` int(11) NOT NULL default '0',
  KEY `idtn2` (`idtn2`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `tn2` VALUES (1, 'ligne 2-1', 1);
INSERT INTO `tn2` VALUES (2, 'ligne 2-2', 2);

CREATE TABLE `tn3` (
  `idtn3` int(11) NOT NULL auto_increment,
  `libtn3` varchar(20) NOT NULL default '',
  `idtn2` int(11) NOT NULL default '0',
  KEY `idtn3` (`idtn3`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `tn3` VALUES (1, 'ligne 3-1', 1);


sous mysql la requete à faire est la suivante :
SELECT libtn1, libtn2, libtn3
FROM tn1
LEFT JOIN tn2 ON ( tn1.idtn1 = tn2.idtn1 ) 
LEFT JOIN tn3 ON ( tn2.idtn2 = tn3.idtn2 )

libtn1     libtn2      libtn3 
ligne 1-1  ligne 2-1   ligne 3-1 
ligne 1-2  ligne 2-2   NULL 
ligne 1-3  NULL        NULL 



J'ai fait le test en hyperfile:

Que ce soit "a la main" ou avec l'editeur de requete , windev me sort bien cette requete
select libtn1,libtn2,libtn3
FROM TN1 LEFT OUTER JOIN TN2 ON TN1.IDTN1 = TN2.IDTN1,
TN2 LEFT OUTER JOIN TN3 ON TN2.IDTN2 = TN3.IDTN2


Par contre les resultats sont completement faux.

Je ferais remonter au support technique a ta place.

Contribution le : 24/03/2005 15:35
Créer un fichier PDF de la contribution Imprimer


Re: Probleme SQL sur Left JOIN
Utilisateur WDF
Inscrit:
19/05/2004 12:10
De LYON
Post(s): 59
Bonjour,

J'ai exposé ici-même un problème du même genre il y a quelques semaines, sur deux requêtes - écrites avec l'éditeur de requête - avec des jointures externes qui retournaient n'importe quoi (sous WD8 et HF).

J'ai fini par transmettre le tout au ST avec un mini projet et on m'a renvoyé un enregistrement d'incident n° 43448 transmis au service Développement.

Il m'a également été conseillé de migrer mon appli. sous WD9 ; ce que je viens de faire...
et en re-créant ma requête de A à Z, j'ai toujours le même résultat aberrant.

Il serait peut-être intéressant de transmettre effectivement votre problème au ST.

Plus on est de fous...

Contribution le : 24/03/2005 17:10
Créer un fichier PDF de la contribution Imprimer


Re: Probleme SQL sur Left JOIN
Developpeur WDF
Inscrit:
24/11/2003 10:38
De Dieppe
Post(s): 118
Apres y a toujours moyen de contourner un LEFT JOIN avec un UNION, mais ca devient problematique quand on a 2 LEFT JOIN ou plus

Contribution le : 24/03/2005 21:01
Créer un fichier PDF de la contribution Imprimer


Re: Probleme SQL sur Left JOIN
Anonyme
Merci de votre réponse.
Je débute en WIndev veant de VB, et commence seulement à arriver à faire ce que je souhaite avec WD. Ce problème SQLm'embetait aussi parce que j'avais l'impression de ne pas comprendre un truc...



Contribution le : 24/03/2005 22:56
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2