Problème avec l'opérateur !=

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème avec l'opérateur !=

par Hubert Roksor » 05 avr. 2007, 15:48

j'utilise tout le temps != dans mes autres requets
Comme le disait Cyrano, il faut lui préférer <> pour des raisons de compatibilité entre les différents gestionnaires de base de données ou même entre les modes SQL de MySQL. [Edit: à vérifier, mais je pense que != génère un warning en mode ANSI]

par Ryle » 05 avr. 2007, 14:06

Est ce parce que MySQL n'utilise pas FULL OUTER JOIN ?
Ca me parait être une très bonne raison en effet ;)

Tu dois pouvoir simuler un full outer join en faisant un union entre un "left outer join" et un "right outer join" :)

par orgerix » 05 avr. 2007, 13:21

Ca marche.

Mais quel est la différence entre mettre dans la condition de jointure ou dans le filtre ?

Sinon, j'ai un problème avec FULL OUTER JOIN et MySQL. Est ce parce que MySQL n'utilise pas FULL OUTER JOIN ?

par Ryle » 05 avr. 2007, 11:09

Et pourquoi ne pas mettre ta clause directement dans la condition de ta jointure ?

Code : Tout sélectionner

SELECT H.nom, H.ville, M.nom, M.ville FROM hier H LEFT OUTER JOIN maintenant M ON H.nom=M.nom AND M.ville!=H.ville

par orgerix » 04 avr. 2007, 18:19

table hier :

Code : Tout sélectionner

nom ville a Thouars b Poitiers c Thouars
table maintenant :

Code : Tout sélectionner

nom ville a Poitiers b Poitiers
Le résultat devrait être

Code : Tout sélectionner

a Thouars a Poitiers c Thouars NULL NULL
Car b est toujours dans la même ville et c a disparu.

par Cyrano » 04 avr. 2007, 18:04

Alors mets nous la structure des tables avec quelques lignes de données exemples et par la suite ajoute un exemple de la sortie attendue par rapport aux exemples donnés, ça simplifiera énormément pour te répondre.

par orgerix » 04 avr. 2007, 17:44

POurtant j'utilise tout le temps != dans mes autres requets et ca marche...

Même en chageant l'opérateur, ca marche pas...

par Cyrano » 04 avr. 2007, 17:25

Note :
"différent" s'écrit :
- en PHP: "!="
- en JavaScript : "!="
- en SQL : "<>"

Corrige et refais l'essai :-k

Problème avec l'opérateur !=

par orgerix » 04 avr. 2007, 16:24

Bonjour, j'ai deux table, hier et maintenant, avec chacune deux champs, nom et ville.

Mon but est de trouver les déplacements, c'est à dire les nom qui sont associé à des villes différentes dans les deux tables.

J'ai donc la requete :

Code : Tout sélectionner

H.nom FROM hier H LEFT OUTER JOIN maintenant M ON H.nom = M.nom WHERE M.ville!=H.ville
Mais cette requete me revoie rien, alors que dans ma BDD, j'ai pourtant des noms associé à des villes différentes dans les deux tables...