2010-12-12 4 views
0

Je suis un peu bloqué sur une requête et je pourrais utiliser certaines idées. En mysql, j'ai ces champs.
id, dept, desc, event_date, long_descListe des données par groupes classés par date

Ce que je veux faire est de créer une table des données triées par département trié par date. Donc, je veux la sortie un peu comme ça.

 
dept1 -- description -- jan 1 

dept1 -- description -- jan 3 

dept1 -- description -- jan 5 



dept2 -- description -- jan 1 

dept2 -- description -- feb 3 

dept2 -- description -- march 5 

etc..etc..

normalement, si elle est juste quelques queries..I aurait juste quelques requêtes distinctes comme

$sql=mysql_query("Select * from blah where blah=blah Order by blah") 

gère ma boucle while et l'écho le $rows[] dans une table.

Mais dans ce cas, il y a plus de 200 depts que j'ai besoin de sortir. Existe-t-il un moyen de construire cela en une seule requête avec des ruptures entre les groupes?

+0

Quel est le type de données pour la colonne "event_date" - chaîne ou DATETIME? Pouvez-vous donner un exemple de votre production attendue? –

Répondre

3
SELECT 
    dept, desc, MIN(event_date) 
FROM 
    `table` 
GROUP BY 
    `dept`, `desc` 
ORDER BY 
    `date` ASC 

Cela vous permet de retourner à la fois le département et le desc. Assurez-vous que votre tableau n'a pas de descriptions différentes pour les départements qui portent le même nom.

Questions connexes