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 29/09/2008, 16h51   #1
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 319
Points : 3 319
Par défaut Jointure un poil complexe

Bonjour à tous,
Je suis face à un petit problème sur une de mes requetes.

J'ai une table nommé "tache" qui contient une liste de tache a laquelle est notemment relié un utilisateur.

J'ai logiquement une table "user" :

Code :
1
2
3
4
5
6
7
8
User
+----+-------------+----------------+---------------+--------+------------+----------+
| id | login       | pass           | email         | groupe | nom        | prenom   |
+----+-------------+----------------+---------------+--------+------------+----------+
tache
+----+-------------+----------------+---------------+--------+------------+----------+
| id | date_ask    | demandeur      | client        | user   | descrip| etat     |
+----+-------------+----------------+---------------+--------+------------+----------+
Jusque là tout va bien.
On m'a ensuite demander la possibilité de relié plusieurs utilisateur à une même taches , tout en étant diffirents de l'utilisateur principal.

j'ai donc créer une table tache_assoc pour faire le lien entre tout ce petit monde :

Code :
1
2
3
4
tache_assoc
+----+---------+----------+
| id | id_user | id_tache |
+----+---------+----------+
Mon souçis actuellement est que j'arrive bien à tout récupérer avec la requete suivante :

Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT t.id, date_ask, valid_teb, valid_pry, demandeur, c.label AS client, date_limit, description, etat, remarque, p.label AS label, v.label AS version, nom, prenom, ta.id_user AS lier
FROM tache t
INNER JOIN user u ON t.user = u.id
INNER JOIN projet p ON t.projet = p.id
LEFT JOIN projet_version v ON t.version = v.id
LEFT JOIN client c ON t.client = c.id
LEFT JOIN tache_assoc ta ON ta.id_tache = t.id
WHERE date_limit >= '2008-01-01'
AND date_limit <= '2008-12-31'
ORDER BY date_limit DESC
LIMIT 0 , 30
Mais je n'arrive pas à remplacer l'id des utilisateurs trouvés dans "tache_assoc" par leur nom et prénom.
Auriez vous une idée ?
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 16h58   #2
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
salut,

tu ne fais pas de jointure entre ta table tache_assoc et ta table user
par contre avec ta nouvelle table, ta jointure entre tache et user devient inutile non? la liaison ne devrait pas se faire comme cela
ou bien j'ai mal compris?
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h02   #3
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 319
Points : 3 319
Citation:
Envoyé par Cybher
salut,
tu ne fais pas de jointure entre ta table tache_assoc et ta table user
Non en effet puisque je la fait déjà entre tache et user , je me suis dis qu'elle n'était peut être pas nécessaire
Citation:
Envoyé par Cybher
par contre avec ta nouvelle table, ta jointure entre tache et user devient inutile non? la liaison ne devrait pas se faire comme cela
ou bien j'ai mal compris?
En fait je ne sais pas vraiment :/
J'ai besoin de faire une jointure entre tache et user pour avoir nom et prenom de l'utilisateur principal mais j'ai également besoin d'avoir les nom et prenom des personnes dans tache_assoc qui est également lié à tache...
bref je patauge
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 17h07   #4
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
peux tu donner un petit jeu d'essai pour qu'on comprenne mieux?

j'ai du mal à voir l'intérêt de ta 3eme table si une tache est deja relié à un user via ta table tache.
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/09/2008, 19h19   #5
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Je crois que ce problème ressemble à un morceau de la base de données du logiciel sur lequel je travaille :
Utilisateurs -0,n----Creer----1,1- Projets
Utilisateurs -0,n----Affecter----0,n- Projets

Il n'y a qu'un créateur de projet (dans ton cas un utilisateur principal de la tâche, le responsable peut-être ?) mais d'autres utilisateurs sont affectés au projet (d'autres utilisateurs affectés à une tâche).

Remplace Projets par Taches dans ton cas et tu as ton morceau de MCD.

Passons aux tables :
Users(idUser, login, pass, email, idgroupe, nom, prenom)
Taches
(idTache, date_ask, demandeur, client, idUser, descrip, etat)
Affecter(idUser, idTache, ...)

Les clés primaires sont soulignées et les clés étrangères sont en italique.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 08h44   #6
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 319
Points : 3 319
Citation:
Envoyé par Cybher Voir le message
peux tu donner un petit jeu d'essai pour qu'on comprenne mieux?
Oui voici un extrait :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
-- 
-- Structure de la table `client`
-- 
 
CREATE TABLE `client` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `label` varchar(255) collate utf8_unicode_ci NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=8 ;
 
-- 
-- Contenu de la table `client`
-- 
 
INSERT INTO `client` (`id`, `label`) VALUES 
(1, 'VTP'),
(2, 'PLU'),
(3, 'MIS');
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `projet`
-- 
 
CREATE TABLE `projet` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `label` varchar(255) collate utf8_unicode_ci NOT NULL,
  `version` varchar(15) collate utf8_unicode_ci DEFAULT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=15 ;
 
-- 
-- Contenu de la table `projet`
-- 
 
INSERT INTO `projet` (`id`, `label`, `version`) VALUES 
(1, 'PROJET1', '2'),
(2, 'PROJET2', '3'),
(3, 'PROJET3', '2');
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `projet_version`
-- 
 
CREATE TABLE `projet_version` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `label` varchar(50) collate utf8_unicode_ci NOT NULL,
  `id_projet` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=17 ;
 
-- 
-- Contenu de la table `projet_version`
-- 
 
INSERT INTO `projet_version` (`id`, `label`, `id_projet`) VALUES 
(2, '5.0', 1),
(3, '3.01i', 3);
 
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `tache`
-- 
 
CREATE TABLE `tache` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `date_ask` date NOT NULL COMMENT 'Date de demande',
  `demandeur` varchar(255) collate utf8_unicode_ci NOT NULL,
  `client` int(11) NOT NULL,
  `description` text collate utf8_unicode_ci NOT NULL,
  `date_limit` date DEFAULT NULL COMMENT 'Date limite de rendu',
  `etat` varchar(25) collate utf8_unicode_ci NOT NULL COMMENT 'Etat du projet',
  `projet` int(11) NOT NULL,
  `version` int(11) NOT NULL,
  `user` int(11) NOT NULL,
  `planning` int(11) NOT NULL COMMENT 'Id de l entrée planning correspondante',
  `remarque` text collate utf8_unicode_ci,
  `valid_teb` BINARY(1) NOT NULL DEFAULT '0',
  `valid_pry` BINARY(1) NOT NULL DEFAULT '0',
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=43 ;
 
-- 
-- Contenu de la table `tache`
-- 
 
INSERT INTO `tache` (`id`, `date_ask`, `demandeur`, `client`, `description`, `date_limit`, `etat`, `projet`, `version`, `user`, `planning`, `remarque`, `valid_teb`, `valid_pry`) VALUES 
(1, '2008-09-01', 'QSD', 1, 'Description 1', '2008-09-15', 'Terminé', 1, 1, 1, 92, '', 0x31, 0x31),
(4, '2008-07-01', 'QSD', 3, 'Description 2', '2008-09-01', 'Terminé', 3, 1, 5, 95, '', 0x31, 0x31),
(5, '2008-03-01', 'QSD', 2, 'Description 3', '2008-08-31', 'Terminé', 2, 2, 6, 96, '', 0x31, 0x31);
 
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `tache_assoc`
-- 
 
CREATE TABLE `tache_assoc` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_user` int(11) NOT NULL,
  `id_tache` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=35 ;
 
-- 
-- Contenu de la table `tache_assoc`
-- 
 
INSERT INTO `tache_assoc` (`id`, `id_user`, `id_tache`) VALUES 
(32, 5, 4),
(34, 1, 1),
(33, 6, 5);
 
-- --------------------------------------------------------
 
-- 
-- Structure de la table `user`
-- 
 
CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `login` varchar(64) collate utf8_unicode_ci NOT NULL,
  `pass` varchar(255) collate utf8_unicode_ci NOT NULL,
  `email` varchar(128) collate utf8_unicode_ci NOT NULL,
  `groupe` int(11) DEFAULT NULL,
  `nom` varchar(50) collate utf8_unicode_ci DEFAULT NULL,
  `prenom` varchar(50) character SET utf8 DEFAULT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `login` (`login`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=18 ;
 
-- 
-- Contenu de la table `user`
-- 
 
INSERT INTO `user` (`id`, `login`, `pass`, `email`, `groupe`, `nom`, `prenom`) VALUES 
(1, 'user1', '152fc4dddcedc0be83ea10cd2667d9e4218b00439c65cb352f4a048e409203b2', 'mail@fai.com', 1, 'Triphon', 'Tournesol'),
(5, 'user2', 'e23c3d7ff76f6e6235ce091f2fcd5fd35748677799d1637acf5ba2bca350e258', 'mail@fai.com', 2, 'Dupond', 'Pierre'),
(6, 'user3', 'e691c862993f99ddab871762b86353493d84438e60848e3c1a819cce6794e746', 'mail@fai.com', 1, 'Dupont', 'Jean');
Et donc avec la requete :
Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT t.id, date_ask, valid_teb, valid_pry, demandeur, c.label AS client, date_limit, description, etat, remarque, p.label AS label, v.label AS version, nom, prenom, ta.id_user AS lie
FROM tache t
INNER JOIN user u ON t.user = u.id
INNER JOIN projet p ON t.projet = p.id
LEFT JOIN projet_version v ON t.version = v.id
LEFT JOIN client c ON t.client = c.id
LEFT JOIN tache_assoc ta ON ta.id_tache = t.id
WHERE date_limit >= '2008-01-01'
AND date_limit <= '2008-12-31'
ORDER BY date_limit DESC
LIMIT 0 , 30;
J'obtiens :

Citation:
+----+------------+-----------+-----------+-----------+--------+------------+---------------+--------+----------+---------+---------+---------+-----------+------+
| id | date_ask | valid_teb | valid_pry | demandeur | client | date_limit | description | etat | remarque | label | version | nom | prenom | lie |
+----+------------+-----------+-----------+-----------+--------+------------+---------------+--------+----------+---------+---------+---------+-----------+------+
| 1 | 2008-09-01 | 1 | 1 | QSD | VTP | 2008-09-15 | Description 1 | Termin | | PROJET1 | NULL | Triphon | Tournesol | 1 |
| 4 | 2008-07-01 | 1 | 1 | QSD | MIS | 2008-09-01 | Description 2 | Termin | | PROJET3 | NULL | Dupond | Pierre | 5 |
| 5 | 2008-03-01 | 1 | 1 | QSD | PLU | 2008-08-31 | Description 3 | Termin | | PROJET2 | 5.0 | Dupont | Jean | 6 |
+----+------------+-----------+-----------+-----------+--------+------------+---------------+--------+----------+---------+---------+---------+-----------+------+
Il me manque juste a réussir la transformation de la colonne "lie" en nom et prénom.

Citation:
Envoyé par CinePhil
Je crois que ce problème ressemble à un morceau de la base de données du logiciel sur lequel je travaille :
C'est en effet la même chose et j'ai quasi la même structure que toi , je ne suis donc pas rop dans l'erreur :p

Citation:
Envoyé par CinePhil
Il n'y a qu'un créateur de projet (dans ton cas un utilisateur principal de la tâche, le responsable peut-être ?) mais d'autres utilisateurs sont affectés au projet (d'autres utilisateurs affectés à une tâche).
C'est exactement ca , une tache(liée à un projet) est assignée à un chef de projet mais plusieurs autres personnes peuvent (ou pas) êtres affecté à cette taches

PS: j'ai enlever toutes les clé étrangère de l'extrait fournis histoire que ca ne pose pas de problème avec les autres tables que je n'ai pas données
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 09h33   #7
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Ce qu'il te manque, c'est la jointure entre table associative 'tache_assoc' et la table 'user' :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT t.id, date_ask, valid_teb, valid_pry, demandeur, 
  c.label AS client, date_limit, description, etat, remarque, p.label AS label, 
  v.label AS version, u.nom AS NomResp, u.prenom AS PrenomResp, 
  ta.id_user AS lie, u2.nom AS NomAutreUser, 
   u2.prenom AS PrenomAutreUser
FROM tache t
INNER JOIN user u ON t.user = u.id
INNER JOIN projet p ON t.projet = p.id
LEFT JOIN projet_version v ON t.version = v.id
LEFT JOIN client c ON t.client = c.id
LEFT JOIN tache_assoc ta ON ta.id_tache = t.id
INNER JOIN user u2 ON ta.id_user = u2.id
WHERE date_limit >= '2008-01-01'
AND date_limit <= '2008-12-31'
ORDER BY date_limit DESC
LIMIT 0 , 30;
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 10h24   #8
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 319
Points : 3 319
Merci , c'était bien ça le problème

Dernière question , il est tout à fait possible que j'ai plusieurs intervenant sur une même tache.
Avec cette requete , j'aurais par exemple 4 lignes pour la tache d'id 5.
Est il possible de regrouper tous les "nomAutres" dans le même champs (par exemple séparé par des virgules) ou est il plus simple de faire le traitement via php ?
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 10h49   #9
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Oui c'est possible en utilisant la fonction GROUP_CONCAT :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
SELECT t.id, date_ask, valid_teb, valid_pry, demandeur, 
  c.label AS client, date_limit, description, etat, remarque, 
  p.label AS label, v.label AS version, 
  u.nom AS NomResp, u.prenom AS PrenomResp, 
  ta.id_user AS lie, 
  GROUP_CONCAT(
     CONCAT(u2.nom, ' ', u2.prenom) 
     ORDER BY u2.nom, u2.prenom 
     SEPARATOR ','
  ) AS NomAutreUser
FROM tache t
INNER JOIN user u ON t.user = u.id
INNER JOIN projet p ON t.projet = p.id
LEFT JOIN projet_version v ON t.version = v.id
LEFT JOIN client c ON t.client = c.id
LEFT JOIN tache_assoc ta ON ta.id_tache = t.id
INNER JOIN user u2 ON ta.id_user = u2.id
WHERE date_limit >= '2008-01-01'
AND date_limit <= '2008-12-31'
ORDER BY date_limit DESC
LIMIT 0 , 30;
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 10h53   #10
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
Salut Cinephil,

il ne manque pas un group by dans ta requête?

A+

Michel
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 10h56   #11
Expert Confirmé
 
Avatar de grunk
 
Homme Olivier
Développeur Web
Inscription : août 2003
Messages : 1 837
Détails du profil
Informations personnelles :
Nom : Homme Olivier
Âge : 27
Localisation : France, Côte d'Or (Bourgogne)

Informations professionnelles :
Activité : Développeur Web
Secteur : Industrie

Informations forums :
Inscription : août 2003
Messages : 1 837
Points : 3 319
Points : 3 319
Super merci
Me coucherais moins bête ce soir !

Juste petite correction , il manque un GROUP BY t.id en fin de requete puisque c'est indispensable pour toutes les fonction de groupage style SUM,MAX ...
grunk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 10h59   #12
Modérateur
 
Avatar de Cybher
 
Homme Michel
Consultant informatique
Inscription : mai 2005
Messages : 3 006
Détails du profil
Informations personnelles :
Nom : Homme Michel
Âge : 29
Localisation : France

Informations professionnelles :
Activité : Consultant informatique
Secteur : Conseil

Informations forums :
Inscription : mai 2005
Messages : 3 006
Points : 4 039
Points : 4 039
Citation:
Envoyé par grunk Voir le message
Juste petite correction , il manque un GROUP BY t.id en fin de requete puisque c'est indispensable pour toutes les fonction de groupage style SUM,MAX ...
Salut grunk,

je dirais même que normalement, il faut mettre dans ton group by toutes tes colonnes présentes dans le select qui ne sont pas avec une fonction de groupage (mais bon comme c'est du MySQL, ça passe )
Cybher est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2008, 11h01   #13
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 034
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 034
Points : 18 324
Points : 18 324
Envoyer un message via MSN à CinePhil
Exact Cybher, j'avais (encore) zappé ce détail ! Re-
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique.
Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework...
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française !
Linuxiens, comptez-vous !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h49.


 
 
 
 
Partenaires

Hébergement Web