Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Requêtes
Requêtes Forum d'entraide sur les requêtes MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 03/03/2011, 10h34   #1
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Par défaut Utilisation de case when avec une sous requête

Bonjour j'ai une question, je souhaite faire un test avec CASE WHEN de mysql mais je ne sais pas s'il est correct au niveau syntaxique et logique.
Je souhaite vérifier dans une table la présence d'un enregistrement mais avec certaine condition.
dans cette table je ne peux avoir de doublons avec deux champs spécifiques.
Je m'explique :
  • Un élève peut être dans plusieurs école
  • un élève ne pas être ajouter deux fois dans la même école
Donc le champs id_school peut apparaitre plusieurs fois, le champs idprofil également mais pas simultanément.
Donc la ligne :
Citation:
idprofil = 1 , id_school = 2 ne peut être insérer qu'une seul fois mais
idprofil = 1, id_school = 1 | idprofil = 2, id_school = 1 est tout à fait correct.
Mon test consiste à vérifier que cela n'arrive pas :
Code :
1
2
3
SELECT CASE WHEN (SELECT id_profil FROM dc_sc_student 
WHERE idprofil = 1 AND id_school = 'l7etqxvhwzk4ogwkc') AS verify_st
THEN 1 ELSE 0 END
Je suppose que j'ai encore chercher midi à quatorze heure et que j'ai mal fait la requête puisque c'est incorrect.
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2011, 13h23   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
il ne manquerait pas un petit EXISTS devant la sous-requête ?
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 11h48   #3
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Bonjour Antoun
Citation:
il ne manquerait pas un petit EXISTS devant la sous-requête ?
Ou sa ?
J'ai essayer plusieurs syntaxe mais je me trompe chaque fois ,c'est vraiment gênant
Mais est ce nécessaire que je fasse une sous requête pour retourner ce que je désire ?
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/03/2011, 16h44   #4
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 544
Points : 9 544
Citation:
Envoyé par gtraxx Voir le message
Bonjour Antoun
Ou sa ?
J'ai essayer plusieurs syntaxe mais je me trompe chaque fois ,c'est vraiment gênant
Si ce que tu veux savoir c'est si la sous-requête renvoie des lignes ou nom, c'est un EXISTS.

Code :
1
2
3
SELECT CASE WHEN EXISTS (SELECT id_profil FROM dc_sc_student 
WHERE idprofil = 1 AND id_school = 'l7etqxvhwzk4ogwkc') AS verify_st
THEN 1 ELSE 0 END
Si ce n'est pas ça que tu veux savoir, il faut que tu me ré-expliques quel est le cas que tu veux tester.
Citation:
Envoyé par gtraxx Voir le message
Mais est ce nécessaire que je fasse une sous requête pour retourner ce que je désire ?
Tu peux peut-être transformer ta sous-requête en jointure, mais pour ça il faudrait que tu donnes ta requête complète et que tu l'expliques un peu.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h23.


 
 
 
 
Partenaires

Hébergement Web