[英]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.