想要选择表格的所有列,同时使用相似的列值

时间:2016-03-18 10:40:12

标签: mysql sql

My Table : Book

表名:书。 最后一列(NoOfBooksPerCourse)是我计算以及获取所有其他列的原因

|BookID  | Title  | Publisher   | Author   | CourseID    | NoOfBooksPerCourse   
----------------------------------------------------------------------
|    1   |   Book1|   Publisher1|  Author1 |     1       |  2         
|    2   |   Book2|   Publisher2|  Author2 |     1       |  2        
|    3   |   Book3|   Publisher3|  Author3 |     2       |  1         
|    4   |   Book1|   Publisher4|  Author4 |     3       |  1         

我有这个表,我想选择所有的cloumns并计算NoOfBooksPerCourse列(在MySql中)。有什么建议吗?

我试过这样的事情:

SELECT Title, Publisher, Author, COUNT( CourseID ) AS NoOfBooksPerCourse
FROM Book
GROUP BY (
CourseID
)

但它没有选择表中的所有行(添加为附件链接),它只选择每个CourseID的第一行。

1 个答案:

答案 0 :(得分:0)

要从Book中选择所有内容,您可以使用SELECT *。任何额外的计数都可以作为内联选择语句添加:

SELECT b1.*,
    (SELECT COUNT(*) FROM Book b2 WHERE b2.CourseID = b1.CourseID) As NoOfBooksPerCourse
FROM Book b1