2011-06-02 4 views
-1

structure de la table MySQL est la suivantegroupe mysql par ordre et par avec la requête limite

cmpid cmpname empid empname join-date 
    1  xxx 21  p  18 
    2  abc 13  q  10 
    1  xxx 20  r   9  
    2  abc 19  s  21 
    2  abc 18  t  20 
    1  xxx 19  u   1 

Je veux résultat selon le format

cmpid cmpname empid empname join-date 
    2  abc 19  s   21 
    2  abc 18  t   20 

    1  xxx 21  p   18 
    1  xxx 20  r   9 

moyens jamais entreprises présente un nouveau emp. puis retournez cette compagnie en premier avec les deux premiers infos emp. et puis d'autres compnies avec le même format.

signifie commande sur Si quelqu'un sait s'il vous plaît joindre à ce jour et le groupe sur cmpname avec 2 personnes d'info

répondre

Merci

+1

Veuillez reformuler votre question. C'est un peu déroutant. – Lamps

+0

Je veux des enregistrements triés sur la date de la jointure et chaque entreprise avec ony 2 enregistrements et la société qui a rejoint le dernier retour d'abord –

Répondre

1

Vous devez diviser cette table en deux tables différentes, les employés et les entreprises, avec une autre table pour les réunir. Avec votre structure actuelle, la plupart des choses que vous voulez faire seront impossibles. Je recommande fortement de lire les règles de normalisation de la base de données.

1

Vouliez-vous dire cela?

select c.cmpid, c.cmpname, e.empid, e.empname, e.join-date 
from company c 
inner join employee e on (c.cmpid = e.cmpid) 
group by c.cmpid, e.emp_id 
order by e.join-date 
+0

merci pour la réponse, mais il n'y a pas deux table c'est table unique. mais pour sélectionner des entreprises telles que celles qui ont le dernier nouveau emp rejoindre et donner 2 enregistrements pour chaque entreprise dans l'ordre trié avec le groupe sur l'entreprise –