簡體   English   中英

SQL查詢2行,並且僅顯示一次具有相同值的行

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM