IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Oracle Discussion :

Where et And


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Where et And
    Bonjour,

    Je suis en train d'étudier SQL avec un livre d'exercises et il y a une requete que je n'arrive pas à comprendre.

    J'ai les 3 tables suivantes:

    Employees:
    Qui contient les champs:
    employee_id (primary key), last_name, department_id

    Departments:
    Qui contient les champs:
    Department_id (primary key), location_id

    Locations:
    Qui contient les champs:
    Location_id (primary key), city

    J'essaye d'écrire une query qui va m'afficher ceci:
    last_name, department_id et department_name
    pour tous les employés à Toronto

    Le cahier d'exercises donne la solution suivante:

    SELECT e.last_name, e.department_id, d.department_name
    FROM employees e JOIN departments d
    ON (e.department_id = d.department_id)
    JOIN locations l
    ON (d.location_id = l.location_id)
    WHERE LOWER(l.city) = 'toronto'

    J'ai une question:
    1: est-ce qu'on peut remplacer le WHERE par un AND ??. Sinon, pourquoi??

    Merci énormément de votre aide...
    Heidi

  2. #2
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par heidi28 Voir le message
    .
    .
    .

    J'ai une question:
    1: est-ce qu'on peut remplacer le WHERE par un AND ??. Sinon, pourquoi??
    .
    .
    1: Tu peux remplacer le WHERE par AND et voir ce que ça te donne.
    2: Pourquoi cette question, est ce que WHERE et AND remplissent les mêmes fonctions?

    WHERE permet de spécifier la condition de la jointure et AND permet d'associer plusieurs conditions au WHERE. Donc tu peux avoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE LOWER(l.city) = 'toronto' AND UPPER(l.city) = 'TORONTO'
    LOWER(l.city) = 'toronto' est la premiere condition et UPPER(l.city) = 'TORONTO' est la deuxieme. AND permet juste de dire
    RECUPERE LES ELEMENTS QUI VERIFIENT LA PREMIERE CONDITION ET LA DEUXIEME CONDITION.
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Salut rvfranck.

    Le problème c'est que j'ai pas Oracle pour essayer la chose.

    Aussi, le genre d'examen que je vais passer est tricky, ils te posent des questions du genre: Quels énoncés parmi les suivants permettent d'accomplir la tache... Et puisqu'il peut y avoir plus d'une reponse, j'essaye de comprendre les similarités entre les fonctions..

    Heidi

  4. #4
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Techniquement tu peux remplacer le WHERE par un AND :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT e.last_name, e.department_id, d.department_name
    FROM employees e JOIN departments d
    ON (e.department_id = d.department_id)
    JOIN locations l
    ON (d.location_id = l.location_id AND LOWER(l.city) = 'toronto')
    Mais ça n'a pas vraiment de sens, il vaut mieux laisser les filtres dans un where.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  5. #5
    Membre confirmé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Points : 534
    Points
    534
    Par défaut
    Citation Envoyé par heidi28 Voir le message
    Salut rvfranck.

    Le problème c'est que j'ai pas Oracle pour essayer la chose.

    Aussi, le genre d'examen que je vais passer est tricky, ils te posent des questions du genre: Quels énoncés parmi les suivants permettent d'accomplir la tache... Et puisqu'il peut y avoir plus d'une reponse, j'essaye de comprendre les similarités entre les fonctions..

    Heidi
    Tu peux télécharger Oracle sur www.oracle.com ou utiliser la bd de test en ligne.

    Si c'est ce genre d'énoncé, alors tu dis oui pour le remplacement de WHERE par AND, même si comme l'a dit NUKE_Y "cela n'a vraiment pas de sens".
    "Celui qui reconnaît consciemment ses limites est le plus proche de la perfection." Johann Wolfgang

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2008
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup les gars

    A plus

    Heidi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Doctrine] Perf: WHERE IN () ou WHERE condition and Where condition
    Par Laurent91300 dans le forum ORM
    Réponses: 5
    Dernier message: 31/01/2014, 22h54
  2. [MySQL] Requête avec WHERE 1 AND et plein de OR le AND n'est pas pris en compte
    Par alsaco68 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/01/2008, 10h09
  3. Critère Where et And dans une requête :
    Par ForKlide dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 04/09/2007, 15h59
  4. SELECT * FROM xx WHERE yy AND zz AND tt AND
    Par french-petzouille dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/03/2007, 09h52
  5. probleme avec WHERE ... BETWEEN ... AND ...
    Par toyyo dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 30/11/2005, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo