|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre éclairé
![]() |
Bonjour,
dans un soucis de portabilité d'une application sur plusieurs base de donnée, j'ai besoin de faire tourner mon programme (php) sous mysql et postgresql. Cependant j'ai une requète MYSQL qui semble ne pas marcher sous postgresql : Code :
SELECT g.*, COUNT(gu.g_id) AS g_count FROM fsb2_groups g LEFT JOIN fsb2_groups_users gu ON g.g_id = gu.g_id WHERE g.g_type <> 1 AND g.g_type <> 3 GROUP BY g.g_id Code :
ERROR: COLUMN "g.g_name" must appear IN the GROUP BY clause OR be used IN an aggregate FUNCTION |
|
|
00
|
|
|
#2 |
|
Membre actif
![]() |
Salut,
en SQL, en principe, quand tu mets des champs dans une clause Group BY, tu dois reporter ces champs dans le select. Tu ne peux pas avoir je ne connais pas MySQL mais je sais que sous Oracle ça ne marche pas, sous Pg je suppose que cela est pareil A+ |
|
|
00
|
|
|
#3 |
|
Membre éclairé
![]() |
Ah oui c'est un problème, il n y a pas une astuce ? Car le problème c'est que le nombre de champ dans * peut très bien changé
|
|
|
00
|
|
|
#4 | ||
|
Membre actif
![]() |
Salut,
je ne suis pas un pro du SQL mais je me débrouille, je pense que tu peut t'en sortir en faisant Code :
le Group by permet de faire des agrégats (style SUM, COUNT, AVG, MIN, MAX, ...) Sinon sur le site tu as http://sql.developpez.com/ qui peut t'aider avec des tutoriels, des exemples, ... A+ |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com