Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1831 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [HQL] un JOIN sans with

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[HQL] un JOIN sans with

n°1750354
naeco
Buddy Rich Big Band
Posté le 23-06-2008 à 18:56:08  profilanswer
 

Bonjour,
Je dois faire un requête en HQL, et je ne comprend pas pourquoi elle ne me ramène rien... alors je m'en remet à vous !
 
Voici l'idée
soit une table A qui pointe sur une table B une table C et une table D
on doit faire une requête sur D, pas d'autre choix, car en fait il y a plein d'autre tables et la requête porte sur plein de ces tables.
 

Code :
  1. SELECT DISTINCT d
  2. FROM D d
  3. LEFT OUTER JOIN d.a a_join
  4. LEFT OUTER JOIN a_join.b b
  5. WHERE  d IN (SELECT DISTINCT abis.d FROM A abis WHERE :variable0 > abis.tata) 
  6.   AND  b.id = :variable1 and b.toto = 1

 
 
 
Je ne peux pas utiliser IN ELEMENTS, car les tables D et B ne sont pas reliés directement
 
Je sais que je pourrais faire avec WITH, mais comme je dois générer cette requête avec plein d'autre conditions, ça m'arrangerait de pouvoir la faire avec juste une clause WHERE variable :p
 
Cette requête fonctionne, mais elle ne me ramène rien, alors que quand je vérifie directement en SQL sur la base, il devrait y avoir des réponses.
 
La question est donc, dans les étapes d'évaluation de cette requête, que ce passe t'il, où est ce que ça cloche ?
Car si je m'imagine bien ce qui se passe derrière, là, elle crée une table temporaire en combinant les info des JOIN, puis sur cette table, elle applique le WHERE. Avec un WITH, elle appliquerait directement le filtre au moment de cette table temporaire. Donc mise à part des perfs différentes, je ne vois pas pourquoi ce que ça me ramène est également différent !
Je vous remercie de vos suggestions ! :)

mood
Publicité
Posté le 23-06-2008 à 18:56:08  profilanswer
 

n°1754200
MagicBuzz
Posté le 01-07-2008 à 19:02:40  profilanswer
 

c'est normal que tu n'aies pas de "on" dans tes join ?
 
sorti de ça, ta requête m'a l'air très étrange, je suppose que HQL est un sgbd absolument pas standard (à la première ligne tu devrais en toute logique avoir un statement error en SQL). du coup je peux pas t'aider, je pige meme pas ce que tu tente de faire :D

n°1754450
naeco
Buddy Rich Big Band
Posté le 02-07-2008 à 10:50:25  profilanswer
 

C'est quand même gentil de participer ;)
 
Si c'est standard, mais objet... du coup, on peut faire des select sur des objets, pas sur des en-tête de colonne, et d'autre part,  il y a des fichiers de maping qui explique comment les tables sont dépendantes, d'où l'absence d'attribut ON.
 
Ceci dit, je ne vois toujours pas pourquoi elle ne me ramène rien...

n°1754472
MagicBuzz
Posté le 02-07-2008 à 11:20:55  profilanswer
 

j'imagine que les fichiers de mapping justement son foireux. tu dois avoir un truc qui cloche au moment où il tente de faire les jointures.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [HQL] un JOIN sans with

 

Sujets relatifs
[hibernate][RESOLU]insertion, update OK, lecture avec requete HQL KOpbm left join
INNER JOIN et LikeOracle - besoin d'aide pour un outer join
Mysql - LEFT JOIN Multiple sur une même table[Web Services] There's no ObjectFactory with an @XmlElementDecl
traduction de with en php[RESOLU]Comptage impossible ou pb avec mon "left join" ?
[MySQL] SELECT avec LEFT JOIN et LIMITMySQL - Optimisation d'une requête avec plusieurs JOIN
Plus de sujets relatifs à : [HQL] un JOIN sans with


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR