繁体   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