|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |||
|
Invité régulier
![]() Inscription : septembre 2010 Messages : 31 ![]() |
Bonjour,
J'effectue en ce moment une migration de MySQL vers PostgreSQL et j'ai quelques difficultés avec cette requête : Code :
Citation:
membre.id_membre est la clé primaire de la table membre article.id_article est la clé primaire de la table article Merci de m'aider. |
|||
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
C'est normal, MySQL est une vrai passoire et laisse des requêtes sciemment fausses sans complexe donnant des résultats souvent faux.
Commencez par apprendre le langage SQL, et notamment le principe du GROUP BY : 1 - La présence de la clause GROUP BY est nécessaire dès que la clause de sélection, ou le filtre WHERE, ou encore les jointures comportent simultanément des calculs d'agrégation et la présence de colonnes de table hors de calculs d'agrégation. 2 - De plus, toutes les colonnes représentées hors des calculs d'agrégation doivent figurer dans la clause GROUP BY. A lire : http://sqlpro.developpez.com/cours/sqlaz/ensembles/ De ce fait vous devez impérativement mettre dans votre GROUP BY toutes les colonnes, sauf celles agrégées ! A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
|
00
|
|
|
#3 | ||||
|
Invité régulier
![]() Inscription : septembre 2010 Messages : 31 ![]() |
Bonjour,
Merci d'avoir pris le temps de me répondre. J'ai suivi vos conseils en ésperant ne pas avoir fait d'erreur : Code :
Pourtant quand je vérifie dans ma table article, il y a bien un article qui correspond et un membre aussi. Qu'en pensez-vous ? Edit : On m'a proposé une solution : Code :
Merci. |
||||
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Frédéric BROUARDExpert SGBDR & SQL Inscription : mai 2002 Messages : 10 954 ![]() |
Évitez d'utiliser le USING pour les jointures (comme le NATURAL JOIN). Ce sont des gadget pour benêt ! On se sait pas sur quelle table il va faire les jointures. En supposant par exemple que votre colonne existe dans trois tables, comment résoud-il le USING ?
Bref, soyez clair net et précis, mettez des prédicat de jointure avec ON et précisez la provenance de toutes vos colonnes avec des alias de table. Code :
A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/ Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp. Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * * |
||
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : septembre 2010 Messages : 31 ![]() |
Bonjour,
Ce matin j'ai lu quelques uns de vos articles sur SQLPro entres autres les jointures SQL Voici ce que j'ai tenté : Code :
Seulement, l'index NombreNote n'existe pas. Je précise que la table note_article est vide. Merci. |
||
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() |
Citation:
Je ne comprends pas pourquoi vous dites qu'elle n'existe pas? elle n'est pas présente dans le SELECT principal... Ceci dis elle sera à NULL si vous l'y ajoutez puisque note_article est vide...
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : septembre 2010 Messages : 31 ![]() |
Bonsoir,
Dans ma requête SQL, je souhaite avoir le nombre de vote pour l'article. il s'agit de "N". Si le résultat est NULL, mon script en PHP affichera 0. Sinon il affichera la valeurs retournée par la requête. Vous m'avez mis la puce à l'oreille, grâce à votre post, j'ai eu l'idée d'ajouter N.NombreNote au SELECT principal de ma requête. Problème résolu ! |
|
|
00
|
|
|
#8 | |||
|
Membre Expert
![]() |
Citation:
Vous pouvez aussi faire ceci dans votre SELECT: Code :
Ce qui vous évite d'avoir des NULL dans NombreNote... vous aurez directement 0 à la place.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|||
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() Inscription : septembre 2010 Messages : 31 ![]() |
Merci pour cette astuce.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com