|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Développeur Web Inscription : juin 2011 Messages : 21 ![]() |
Bonjour,
j'ai 3 tables que je veux lier par une requête: La relation de la première aux 2 suivantes est de 0 à N. Code :
|
||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Cédric DuprezInscription : avril 2002 Messages : 3 823 ![]() |
Bonjour,
Je ne suis pas bien certain d'avoir compris ce que tu souhaites faire, mais s'il s'agit juste de compter le nombre de "cabs" ou de "courses" d'un praticien, la requête suivante devrait suffire : Code :
Sinon, donne-nous un exemple de ce que tu souhaites obtenir comme résultat à partir des données présentes dans les tables.
__________________
Rédacteur / Modérateur SGBD Mes tutoriels et la FAQ MySQL ---------------------------------------------------- Pensez aux balises code et au tag Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
|
||
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Développeur Web Inscription : juin 2011 Messages : 21 ![]() |
Merci.
En fait je cherche par une requête à savoir si les enregistrements de la table courses ou/et cabs sont tous validés ou pas. Je pensais faire un COUNT des deux tables et, à la fois un SUM des champs valides cab_valide et course_valid. Normalement si tous les enregistrements sont validés dans les deux tables, je dois avoir COUNT (courses + cabs) = SUM (valides courses + cabs). Je ne suis pas sûr d'être clair. |
|
|
00
|
|
|
#4 | ||||
|
Membre Expert
![]() Eric DureuilDéveloppeur informatique Inscription : avril 2011 Messages : 853 ![]() |
salut,
un truc tout bête du genre: Code sql :
ou encore ce que tu proposes qui doit être plus rapide logiquement : Code sql :
même combat bien sur pour l'autre table... à toi d'adapter les valeurs à retourner avec ou sans if selon ce qui va être traité derrière...
__________________
Eric Dureuil, développeur web, c/c++, java indépendant soyons ![]() pensez à mettre et
|
||||
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Développeur Web Inscription : juin 2011 Messages : 21 ![]() |
Merci pour ces réponses.
Je vais les tester (je suppose qu'il faut quand même la clause WHERE dans les deux derniers exemples). |
|
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Développeur Web Inscription : juin 2011 Messages : 21 ![]() |
La solution est la suivante :
Code :
|
||
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
utilisez le COALESCE ...
Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#8 |
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Si j'ai bien compris, quand un cab est valide et une course valide ces colonnes prennent la valeur 1 (0 par défaut). Donc Les NULL correspondent à des praticiens qui soit n'ont pas de cab (2° colonne) soit n'ont pas de course (3°colonne). Je pense qu'en forçant la valeur de SUM( praticiens_cabs.cab_valide ) et SUM( praticiens_courses.course_valid ) à 0 si NULL, avec COALESCE, cela devrait faire disparaître ces NULL. Les COUNT(*) seront égaux à 1 (la ligne du praticien), et les SUM() égaux à zéro pour ces lignes, donc leur comparaison devrait retourner FALSE.
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|
00
|
|
|
#9 | ||
|
Invité régulier
![]() Développeur Web Inscription : juin 2011 Messages : 21 ![]() |
Merci des conseils !
![]() Code :
|
||
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Développeur Web Inscription : juin 2011 Messages : 21 ![]() |
Je reviens sur cette requête qui logiquement donne un résultat faux !
En effet, si le résultat est 1 dans une table ou l'autre, la somme devient 1. 1+0 =1, 0+1 =1 Faut-il remplacer le + par un AND ? |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Cela dépend de la table de vérité souhaitée au final ...
Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Développeur Web Inscription : juin 2011 Messages : 21 ![]() |
Bien sur !
Je viens de tester le AND et la table de vérité répond à mes exigences, à savoir ; 1+0=0 0+1=0 0+0=0 1+1=1 l’opérateur + est bien un ET logique. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com