代码之家  ›  专栏  ›  技术社区  ›  AnnaSm

给定两个相关表,如何确定最常见的关系?

  •  0
  • AnnaSm  · 技术社区  · 6 年前

    给出3个表:用户、书籍、书籍用户,我如何确定什么是公共书籍?

    users: id, first_name, last_name
    books: id, name
    books_users: book_id, user_id
    

    设计器输出,类似于:

    book | count
    radBookName | 22
    SemiRad | 22
    

    谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   Yogesh Sharma    6 年前

    你似乎想要简单点 JOIN 具有 GROUP BY 条款:

    SELECT b.name, count(*) as user_count
    FROM books b INNER JOIN
         books_users bu
         ON bu.book_id = b.id
    GROUP BY b.name;
    

    如果一本书有相同的用户,这将产生重复的计数,如果您想要唯一的计数,则使用 count(distinct bu.user_id) 相反。