MySQL - Join & Count rows from another table

前端 未结 3 833
轮回少年
轮回少年 2020-12-12 06:43

I have 3 tables, like:
parent(id, name)
children(id, data, parent_id, timestamp)
table_votes(id, user_id, child_id)

<
3条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-12 07:29

    1) solution with subselect:

    SELECT  
        children.id,
        children.data,
        children.parent_id,  
        children.timestamp,  
        (select count(*) from table_votes children.id = table_votes.child_id) as cntVotes
    FROM 
      children 
    WHERE 
      children.parent_id = 20 
    ORDER BY 
      children.timestamp ASC
    

    2) solution with group by:

    SELECT  
        children.id,
        children.data,
        children.parent_id,  
        children.timestamp,  
        count(table_votes.id) as cntVotes
    FROM 
      children 
    LEFT JOIN
      table_votes ON children.id = v.child_id
    WHERE 
      children.parent_id = 20 
    GROUP BY
        children.id,
        children.data,
        children.parent_id,  
        children.timestamp
    ORDER BY 
      children.timestamp ASC  
    

提交回复
热议问题