两个左联接并包括一个计数?

时间:2020-08-22 17:37:37

标签: mysql count left-join concat

我有以下查询,其中包括连接多个标签的左连接。该查询有效。

  SELECT
    ap.userid, 
    ap.audioid,      
    u.id
       (
        SELECT GROUP_CONCAT(t.tagname)
        FROM entitytag et
        LEFT JOIN tags t on t.tagid = et.tagid
        WHERE et.audioid = ap.audioid
    ) tagname
FROM audioposts ap 
LEFT JOIN users u ON u.id = ap.userid

但是现在我想添加另一个左联接,该联接计算一个称为“回复”的表中每个ap.audioid的回复数。有人知道如何添加这个额外的左联接吗?

这是用于计算对GET中对指定音频ID的回复的查询的查询;

SELECT count('replyid') from replies WHERE opid = ?

但是如何将多余的左联接添加到第一个代码中,以便可以从每个audioid的回复表中获取回复计数?

1 个答案:

答案 0 :(得分:1)

没有左加入,但是阅读您的问题应该可以解决:

SELECT
    ap.userid, 
    ap.audioid,      
    u.id,
       (
        SELECT GROUP_CONCAT(t.tagname)
        FROM entitytag et
        LEFT JOIN tags t on t.tagid = et.tagid
        WHERE et.audioid = ap.audioid
    ) tagname,
    (
      select count('replyid') from replies WHERE opid = ap.audioid
    ) as count
FROM audioposts ap 
LEFT JOIN users u ON u.id = ap.userid