2011-04-16 6 views
0

je suit deux tablesrequête SQL pour afficher les enregistrements de plusieurs tables

  1. Nom de la table: fil

    pk-> thread_id | thread_title | description | posted_time | Subject

  2. Nom de la table: réponse

    pk-> reply_id | thread_id | reply

thread_id est fk

Je veux compter pas de réponses sur chaque fil, je veux sortie comme

thread_id | thread_title | description | posted_time | Subject | No_of_replies 

Répondre

3

Voici la requête que je suis venu rapidement avec au large de la partie supérieure de ma tête:

SELECT 
    T.Thread_ID 
    ,T.Thread_Title 
    ,T.Description 
    ,T.Posted_Time 
    ,T.Subject 
    ,COUNT(R.Reply_ID) AS No_of_replies 
FROM 
    Thread T 
    INNER JOIN Reply R ON T.Thread_ID = R.Thread_ID 
GROUP BY 
    T.Thread_ID 
    ,T.Thread_Title 
    ,T.Description 
    ,T.Posted_Time 
    ,T.Subject 

Cela devrait faire ce que vous voulez.

+0

J'ai essayé le 1er qui est correct. Merci génie – Mayur

0
select t1.*,ifnull(t2.no_of_replies) from thread t1 left join 
(select thread_id,count(1) no_of_replies from reply)t2 
on t1.thread_id=t2.thread_id 
Questions connexes