par
jojolapine » 12 janv. 2007, 15:10
bon alors en fait c'est plus résolu.... car j'ai le même type de requêtes plusieurs fois, mais avec des clauses where différentes et là ça marche plus...
en gros pour la première requête, j'avais ceci avec requête imbriqué:
Code : Tout sélectionner
SELECT `id` , `nom_groupe` , `date_concert` , (
SELECT `nom`
FROM `utilisateurs`
WHERE `id` = `dates`.`salle`
) AS nom
FROM `dates`
WHERE `poubelle` = 'non'
ORDER BY `date_concert` DESC
que j'ai avec votre aide tranformé en ceci:
Code : Tout sélectionner
SELECT d.id, d.nom_groupe, d.date_concert, u.nom
FROM dates d, utilisateurs u
WHERE u.id = d.salle AND d.poubelle = 'non' ORDER BY d.date_concert DESC
ça fonctionne bien, maintenant, j'ai une requête qui ressemble à ceci:
Code : Tout sélectionner
SELECT `id` , `nom_groupe` , `date_concert` , (
SELECT `nom`
FROM `utilisateurs`
WHERE `id` = `dates`.`salle`
) AS nom
FROM `dates`
WHERE `poubelle` = 'non'
AND `date_concert` LIKE '2007-01-13 %'
ORDER BY `date_concert` DESC
c'est la même, en ayant simplement rajouter une vérification sur la date
(ceci dit en passant, y a t'il moyen de faire mieu, pour choisir les entrée dont le jour est égal à2007-01-13, sachant que jai un champ de type datetime)
et voici ce que j'ai fait comme jointure:
Code : Tout sélectionner
SELECT
d.id,
d.nom_groupe,
d.date_concert,
u.nom
FROM
dates d,
utilisateurs u
WHERE
d.poubelle = 'non' AND
d.date_concert LIKE '2007-01-13 %' AND
d.poubelle='non'
ORDER BY
d.date_concert DESC et bien ça ne marche pas, au lieu de ne récupérer seuelement les dates correspondantes, ça me récupère tout et me change (temporairement) toutes les dates à la valeur du datetime de l'élément qui "devrait" être sélectionné
bon alors en fait c'est plus résolu.... car j'ai le même type de requêtes plusieurs fois, mais avec des clauses where différentes et là ça marche plus...
en gros pour la première requête, j'avais ceci avec requête imbriqué:
[code]SELECT `id` , `nom_groupe` , `date_concert` , (
SELECT `nom`
FROM `utilisateurs`
WHERE `id` = `dates`.`salle`
) AS nom
FROM `dates`
WHERE `poubelle` = 'non'
ORDER BY `date_concert` DESC [/code]
que j'ai avec votre aide tranformé en ceci:[code]SELECT d.id, d.nom_groupe, d.date_concert, u.nom
FROM dates d, utilisateurs u
WHERE u.id = d.salle AND d.poubelle = 'non' ORDER BY d.date_concert DESC[/code]
ça fonctionne bien, maintenant, j'ai une requête qui ressemble à ceci:[code]SELECT `id` , `nom_groupe` , `date_concert` , (
SELECT `nom`
FROM `utilisateurs`
WHERE `id` = `dates`.`salle`
) AS nom
FROM `dates`
WHERE `poubelle` = 'non'
AND `date_concert` LIKE '2007-01-13 %'
ORDER BY `date_concert` DESC [/code]
c'est la même, en ayant simplement rajouter une vérification sur la date
(ceci dit en passant, y a t'il moyen de faire mieu, pour choisir les entrée dont le jour est égal à2007-01-13, sachant que jai un champ de type datetime)
et voici ce que j'ai fait comme jointure:
[code]SELECT
d.id,
d.nom_groupe,
d.date_concert,
u.nom
FROM
dates d,
utilisateurs u
WHERE
d.poubelle = 'non' AND
d.date_concert LIKE '2007-01-13 %' AND
d.poubelle='non'
ORDER BY
d.date_concert DESC[/code] et bien ça ne marche pas, au lieu de ne récupérer seuelement les dates correspondantes, ça me récupère tout et me change (temporairement) toutes les dates à la valeur du datetime de l'élément qui "devrait" être sélectionné