OVH Cloud OVH Cloud

recherche avec min

4 réponses
Avatar
Etienne SOBOLE
salut.

j'ai une base qui contient des clients
et pour chaque client, des contacts, des devis et des documents.

les 4 tables on un champs modify_date qui est mis a jour chaque fois que je
modifie l'enregistrement.

comment je fait pour recherche les 15 derniers clients sur lesquel j'ai fait
une modifiaction.
c'est a dire une modif soit sur le fiche client, soit sur un contact, soit
sur un devis soit sur un documents?

merci
Etienne

4 réponses

Avatar
Jacques Caron
Salut,

On Fri, 6 May 2005 15:03:22 +0200, Etienne SOBOLE
wrote:

j'ai une base qui contient des clients
et pour chaque client, des contacts, des devis et des documents.

les 4 tables on un champs modify_date qui est mis a jour chaque fois que
je modifie l'enregistrement.

comment je fait pour recherche les 15 derniers clients sur lesquel j'ai
fait
une modifiaction.
c'est a dire une modif soit sur le fiche client, soit sur un contact,
soit sur un devis soit sur un documents?



En gros:

SELECT client FROM (SELECT id AS client,modify_date FROM client UNION
SELECT client,modify_date FROM contact UNION SELECT client,modify_date
FROM devis UNION SELECT client,modify_date FROM document) ORDER BY
modify_date DESC LIMIT 15;

Pour des raisons de performances (si tu as les index qui vont bien), tu as
probablement intérêt à mettre un ORDER BY et un LIMIT pour chaque SELECT
imbriqué, mais ça oblige à rajouter tout plein de paranthèses et d'alias
donc j'ai eu la flemme là.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
Avatar
Etienne SOBOLE
Super !!!
bon ca ma renvoit plusieurs fois la meme société mais ca c'est pas bien
grave...
vais filtrer en PHP.

merci
Etienne

"Jacques Caron" a écrit dans le message de news:

Salut,

On Fri, 6 May 2005 15:03:22 +0200, Etienne SOBOLE
wrote:

j'ai une base qui contient des clients
et pour chaque client, des contacts, des devis et des documents.

les 4 tables on un champs modify_date qui est mis a jour chaque fois que
je modifie l'enregistrement.

comment je fait pour recherche les 15 derniers clients sur lesquel j'ai
fait
une modifiaction.
c'est a dire une modif soit sur le fiche client, soit sur un contact,
soit sur un devis soit sur un documents?



En gros:

SELECT client FROM (SELECT id AS client,modify_date FROM client UNION
SELECT client,modify_date FROM contact UNION SELECT client,modify_date
FROM devis UNION SELECT client,modify_date FROM document) ORDER BY
modify_date DESC LIMIT 15;

Pour des raisons de performances (si tu as les index qui vont bien), tu as
probablement intérêt à mettre un ORDER BY et un LIMIT pour chaque SELECT
imbriqué, mais ça oblige à rajouter tout plein de paranthèses et d'alias
donc j'ai eu la flemme là.

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
Avatar
Jacques Caron
On Fri, 6 May 2005 17:01:15 +0200, Etienne SOBOLE
wrote:

Super !!!
bon ca ma renvoit plusieurs fois la meme société mais ca c'est pas bien
grave...
vais filtrer en PHP.



Oh ben et SELECT DISTINCT c'est pour qui?

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
Avatar
Jacques Caron
Re,

On Fri, 06 May 2005 17:34:57 +0200, Jacques Caron wrote:

On Fri, 6 May 2005 17:01:15 +0200, Etienne SOBOLE
wrote:

Super !!!
bon ca ma renvoit plusieurs fois la meme société mais ca c'est pas bien
grave...
vais filtrer en PHP.



Oh ben et SELECT DISTINCT c'est pour qui?



Et en fait ce serait plutôt un GROUP BY client avec un max(modify_date) et
un ORDER sur ce dernier champ...

Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/