aide requete MYSQL
6 messages
• Page 1 sur 1
- hanlin
- WRInaute occasionnel

- Messages: 300
- Inscription: 23 Mar 2006
aide requete MYSQL
Salut,
Je m'arrache les cheveux sur une requete :
J'ai deux tables
entr_content :
contient des articles sur des entreprises avec des champs
entr_content.id ===>identifiant de l'article
entr_content.id_comp===> identifiant de l'entreprise
entr_content.title ===> titre
entr_content.date ===> date
entr_companies
contient les le nom des entreprises
entr_companies.id===> identifiant de l'entreprise
entr_companies.name====>nom de l'entreprise
J'essaye de faire apparaitre les entreprises les plus citées dans mes articles ces dernière 24 heures.Sur ma page web je veux qu'elles apparaissent en ordre decroissant avec en dessous les trois dernières news qui leur correspondent.
J'ai fait une première tentative mais la je m'embrouille complet et ça ne marche pas
Merci pour toute suggestion
Hanlin
Je m'arrache les cheveux sur une requete :
J'ai deux tables
entr_content :
contient des articles sur des entreprises avec des champs
entr_content.id ===>identifiant de l'article
entr_content.id_comp===> identifiant de l'entreprise
entr_content.title ===> titre
entr_content.date ===> date
entr_companies
contient les le nom des entreprises
entr_companies.id===> identifiant de l'entreprise
entr_companies.name====>nom de l'entreprise
J'essaye de faire apparaitre les entreprises les plus citées dans mes articles ces dernière 24 heures.Sur ma page web je veux qu'elles apparaissent en ordre decroissant avec en dessous les trois dernières news qui leur correspondent.
J'ai fait une première tentative mais la je m'embrouille complet et ça ne marche pas
- Code: Tout sélectionner
SELECT entr_companies.name, entries_num
FROM entr_companies, (SELECT entr_content.id_comp, COUNT(*) AS entries_num
FROM entr_content GROUP BY entr_content.id_comp
) AS count_query WHERE entr_content.id_comp=entr_companies.id ORDER BY entr_companies.name
limit 0,30
Merci pour toute suggestion
Hanlin
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: aide requete MYSQL
Alors, sans tester et au réveil, je sais pas si tu (enfin je) peux tout faire en une requete :
En théorie avec ça tu récupère les entreprises qui sont le + cités dans les 24 dernières heures.
Et essaye ça au cas où mais j'ai peur que le résultat ne soit pas top.
Merci aux habitués de me corriger !
En théorie avec ça tu récupère les entreprises qui sont le + cités dans les 24 dernières heures.
- Code: Tout sélectionner
SELECT
E.name,
COUNT(C.id) as nb
FROM
entr_content as C,
entr_companies as E
WHERE
C.id_comp = E.id AND
DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= C.date
GROUP BY
C.id_comp
ORDER BY
nb DESC, N.date DESC
Et essaye ça au cas où mais j'ai peur que le résultat ne soit pas top.
- Code: Tout sélectionner
SELECT
E.name,
N.titre,
COUNT(C.id) as nb
FROM
entr_content as C,
entr_companies as E
LEFT JOIN news as N ON(E.id = N.entreprise_id)
WHERE
C.id_comp = E.id AND
DATE_SUB(CURDATE(),INTERVAL 1 DAY) <= C.date
GROUP BY
C.id_comp
ORDER BY
nb DESC, N.date DESC
Merci aux habitués de me corriger !
-

screuscreu - WRInaute impliqué

- Messages: 968
- Inscription: 14 Jan 2008
Re: aide requete MYSQL
évidemment il faut l'enlever puisque tu ne récupère pas de News 
- jcaron
- WRInaute accro

- Messages: 2685
- Inscription: 13 Fév 2004
Re: aide requete MYSQL
Je dirais (pas testé):
Ca doit pas être bien loin hopefully.
Jacques.
- Code: Tout sélectionner
SELECT
*
FROM
entr_content cn,
entr_companies cm,
(
SELECT
id_comp,
count(*) AS count
FROM
entr_content
WHERE
date > now()-cast('1d' as interval)
GROUP BY
id_comp
) cm2
WHERE
cm.id=cm2.id_comp
AND
cn.id IN (
SELECT
id
FROM
entr_content cn2
WHERE
cn2.id_comp=cm.id
ORDER BY
date DESC
LIMIT 3
)
ORDER BY
cm2.count DESC,
cn.date DESC
Ca doit pas être bien loin hopefully.
Jacques.
- hanlin
- WRInaute occasionnel

- Messages: 300
- Inscription: 23 Mar 2006
Re: aide requete MYSQL
En fait j'ai trouvé une solution intermédiaire, sortir les entreprise en requete 1 et faire un foreach pour chaque entreprise avec une sous requête pour sortir chaque article. Mais bon le temps de chargement est pas terrible...
6 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Requete Mysql AIDE svp !
- Aide pour requête MySQL
- Aide requête MySQL avec count
- Aide php/mysql requête svp
- Aide pour une requête MySQL
- Aide pour optimiser l'écriture d'une requete PHP/MYSQL
- [mysql] trier les résultats d'une requête selon une table non liée à la requête
- Requete Mysql ?
- requete Mysql
- Requete MySQL et order
- Google API : guide de développement de l'API Google - 20-09-2002
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Les différents systèmes de mise en cache des données - 16-08-2010
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- Nombre moyen de mots par requête : statistiques AOL Août 2006 - 10-08-2006
- Nombre de clics dans les pages de résultats : statistiques AOL Août 2006 - 11-08-2006
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
- Informations sur l'infrastructure technique de Google - 01-11-2004
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité
