[英]SQL Query 2 rows and display only once that have same value
我有这两个表,BOOK和REVISION,有点像这样:
Book Book_ID | Book_Name | ====================== 1 | Book 1| 2 | Book 2| 3 | Book 3| 4 | Book 4|
Revision Rev_Book_ID | Date_Modified | =========================== 1 | 10/1/2012 | 2 | 10/3/2012 | 2 | 10/5/2012 | 4 | 10/6/2012 |
修改书籍时,该书籍的book_id将保存在修订表中。 如果该书再次被修改,它将添加该书的另一行。 在我的SQL查询中,结果是它显示了本书的2个修订版本。
这是我的查询:
SELECT book.Book_ID, book.Book_Name, Revision.Rev_Book_ID from Book INNER JOIN Revision ON book.Book_ID=Revision.Rev_Book_ID
而且在修订结果(PHP问题)上,我怎么能实现这一点,如果对本书进行了两次修订,它将显示2个修订版本,或者如果进行了3个修订版本,则将显示3个修订版本,我知道这是一个if if else,但不知道如何做到这一点。
My Result: Book ID | Book Name | Revisions | ============================================== 1 | Book 1 | 1 Revision | 2 | Book 2 | 2 Revision | 2 | Book 2 | 2 Revision | 3 | Book 3 | No Revision | 4 | Book 4 | 1 Revision |
Want Result Book ID | Book Name | Revisions | ============================================== 1 | Book 1 | 1 Revision | 2 | Book 2 | 2 Revision | 3 | Book 3 | No Revision | 4 | Book 4 | 1 Revision |
您可以按book_id分组,并仅选择==到MAX(Rev_Book_ID)的这些rev_book_id。通常,您希望对每本书进行数据汇总。 这是mysql规范: http : //dev.mysql.com/doc/refman/5.5/en/group-by-functions.html它应该给你很多想法
对于每本书,您的修订数量( COUNT(Date_Modified)
):
SELECT Book_ID, Book_Name, COUNT(Date_Modified) AS "Revisions"
FROM Book
LEFT JOIN Revison
ON Book_ID = Revision_Book_ID
GROUP BY 1, 2
假设您只想消除重复项:
SELECT book.Book_ID, book.Book_Name, Revision.Rev_Book_ID from Book
INNER JOIN Revision ON book.Book_ID=Revision.Rev_Book_ID GROUP BY book.Book_ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.