2017-03-16 1 views
1

Bevor Sie downvoting, werfen Sie einen Blick auf meine Frage.Mysql-Abfrage gibt keine Artikel mit keine Likes oder keine Kommentare

Ich arbeite an meiner Artikel-Website. Auf meiner Website gibt es einen Bereich, in dem beliebte Artikel angezeigt werden. Die beliebten Artikel basieren auf Likes und Kommentaren. Ich bin unter Abfrage beliebtestene Artikel zeigen:

select 
    s.id as story_id, 
    s.title as story_title, 
    COUNT(l.id) as total_likes, 
    COUNT(cm.id) as total_comments 
from 
    stories s 
right outer join 
    likes l 
on 
    s.id = l.type_id 
right outer join 
    comments cm 
on 
    cm.story_id = s.id 

group by s.id 

order by total_likes desc,total_comments desc 

ich den beliebten Artikel erhalte aber nur 5.Die Artikel zeigen, aber es gibt nur 5, mag ich Artikel ohne Vorlieben oder Kommentare nach dem letzten hier ein Screenshot ist

enter image description here

Hier können Sie beobachten, dass die einzigen Gegenstände, die mindestens 1 wie oder Kommentar angezeigt haben. Ich möchte Artikel ohne Likes oder Kommentare zu

Kann jemand mein Problem lösen, Vielen Dank im Voraus?

Antwort

2

Dadurch kehren auch die Geschichten ohne Gleichen oder Kommentare (sollten Sie LEFT JOIN verwenden):

select 
     s.id as story_id, 
     s.title as story_title, 
     COUNT(l.id) as total_likes, 
     COUNT(cm.id) as total_comments 
    from stories s 
    left join likes l on s.id = l.type_id 
    left join comments cm on cm.story_id = s.id 

    group by s.id, s.title 
    order by total_likes desc,total_comments desc 
+0

Dank hilft, Lassen Sie mich –

+0

überprüfen Es funktioniert dank @scaisEdge. –

+0

@Ilyaskarim gut, wenn meine Antwort richtig ist, bitte markieren Sie es als akzeptiert ... siehe hier http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

2

Sie haben für diese Werden Sie Mitglied links. Dies sollte funktionieren:

select 
     s.*, 
     COUNT(l.id) as total_likes, 
     COUNT(cm.id) as total_comments 
    from stories articles 
    left join likes l on articles.id = l.type_id 
    left join comments cm on cm.story_id = s.id 

    group by articles.id, articles.title 
    order by total_likes desc,total_comments desc 

Hoffe, dass es

Verwandte Themen