Problème avec une requête - SQL/NoSQL - Programmation
Marsh Posté le 04-02-2006 à 16:20:19
Malta a écrit : Bonjour, |
Salut
Il te semble juste.
Je me demande toujours pourquoi MS a inventer cette daube inner... Le (+) sous oracle est tellement plus visuel et allège aussi l'écriture. Mais bon faut s'en accommoder.
Je ne pense pas à un problème de jointure... sans le inner join ta requête devient :
SELECT U.unite_id, U.unite_name, E.effectif
, U.unite_lv, U.unite_att, U.unite_def
, U.build_time, U.unite_pic, U.unite_coast
FROM unite U, effectif E
Where U.unite_id = E.unite_id
AND E.user_id = ".$_SESSION["id"]."
AND E.effectif_actif = '1'
ORDER BY U.unite_lv DESC
... mais cela ne devrait rien changer. Je vérifierai la compositon des données.
Sinon dans certain cas l'utilisation du distinct sert à éviter ce genre de problème
@+
Marsh Posté le 05-02-2006 à 17:17:08
oui... je dis pas le contraire.
je dis que que la syntaxe = pour les inner et (+) ou moins pour les right ou les lefts me gavent et que c'est pas lisible... Maintenant on est bien obliger de faire avec :-)
Marsh Posté le 04-02-2006 à 12:43:23
Bonjour,
Il me semblait que les INNER JOIN ne faisait les liens entre 2 tables que si le lien existait réellement de chaque côté.
(Exemple Commande => Produit, uniquement les produits qui apparaissent dans une commande)
Bref, voici ma requête :
Le problème est que lorsque j'effectue cette requête pour un joueur qui n'a qu'une seule unité, il y a 9 réponses.
(en fait je met le résultat de la requête dans un tableau et je fais des echo du tableau).
La première valeure (id=0) est exacte et les 8 autres sont vides, donc je pense bien que c'est un problème de jointure...
Pour info, j'ai aussi essayé :
FROM unite U INNER JOIN effectif E,
FROM effectif E INNER JOIN unite U,
FROM unite U RIGHT JOIN effectif E,
FROM effectif E RIGHT JOIN unite U,
FROM unite U LEFT JOIN effectif E,
FROM effectif E LEFT JOIN unite U.
Merci.