从结果中选择不同的某些列
假设我有3个表:
- 作者表(ID,AuthorName)
- 流派表(ID,流派名称)
- 书籍表(ID,日期,流派,作者)
其中流派和作者是流派和作者表的外键(ID)。
在这里我使用 :
Select Books.ID, Books.Date, Genre.GenreName, Author.AuthorName
From Books, Genre, Author
Where Books.Genre = Genre.ID
AND Books.Author = Author.ID
Order By Books.ID Desc;
来得到这个结果 :
|身份证 |日期 |类型 |作者 |
---------------------------------
| 1 | 2011 年 4 月 2 日 |行动|一个 |
| 2 | 2011 年 7 月 7 日 |恐怖|乙|
| 3 | 2011 年 8 月 18 日 |行动|一个 |
| 4 | 2011 年 3 月 10 日 |喜剧| C |
| 5 | 2011 年 7 月 16 日 |恐怖| d |
| 6 | 2011 年 7 月 29 日 |恐怖|乙|
| 7 | 2011 年 12 月 5 日 |喜剧|电子|
| 8 | 2011 年 9 月 13 日 |喜剧| C |
但这不是我需要的实际结果。
任何人都可以帮助我选择查询来从书籍中选择不同的列类型和作者以及最新日期以获得下面的结果吗?
|身份证 |日期 |类型 |作者 |
---------------------------------
| 3 | 2011 年 8 月 18 日 |行动|一个 |
| 4 | 2011 年 3 月 10 日 |喜剧| C |
| 5 | 2011 年 7 月 16 日 |恐怖| d |
| 6 | 2011 年 7 月 29 日 |恐怖|乙|
| 7 | 2011 年 12 月 5 日 |喜剧|电子|
Let say I have 3 tables :
- Author table (ID, AuthorName)
- Genre table (ID, GenreName)
- Books table (ID, Date, Genre, Author)
Where Genre and Author are Foreign Keys (ID) of Genre and Author tables.
Here I use :
Select Books.ID, Books.Date, Genre.GenreName, Author.AuthorName
From Books, Genre, Author
Where Books.Genre = Genre.ID
AND Books.Author = Author.ID
Order By Books.ID Desc;
to get this result :
| ID | Date | Genre | Author |
---------------------------------
| 1 | 4/2/11 | Action | A |
| 2 | 7/7/11 | Horror | B |
| 3 | 18/8/11 | Action | A |
| 4 | 3/10/11 | Comedy| C |
| 5 | 16/7/11 | Horror | D |
| 6 | 29/7/11 | Horror | B |
| 7 | 12/5/11 | Comedy| E |
| 8 | 13/9/11 | Comedy| C |
But this is not the actual result that I need.
Can anyone help me the select query to distinct Column Genre and Author from Books and the lastest Date to get this result below?
| ID | Date | Genre | Author |
---------------------------------
| 3 | 18/8/11 | Action | A |
| 4 | 3/10/11 | Comedy| C |
| 5 | 16/7/11 | Horror | D |
| 6 | 29/7/11 | Horror | B |
| 7 | 12/5/11 | Comedy| E |
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我假设作者姓名/流派名称可能相同,所以它使用 ID 将适当的记录定位到最大日期子选择记录,这在某种程度上是安全的。
子查询获取每个流派/作者组合的最大日期列表,然后将其与原始图书记录匹配以获取原始记录中的图书 ID。您需要这样做,因为您不能只最大化 id 和最大化日期并假设最大值来自同一行。
I have been somewhat safe by assuming author names / genre names could be the same, so it uses ID's for locating the appropriate records to the max date sub select records.
Sub query gets a list of maximum dates per genre / author combination, and then matches this back to the original book records to pick up the book ID in the original record. You need to do that, since you can not just max the id and max the date and assume the max values are from the same row.
我终于发现错误了!只是从安德鲁的答案中进行编辑。
这是我当前获得结果的语法:
非常感谢安德鲁! XD
I finally found the error! Just editing here and there from Andrew's answer.
This is my current syntax to get the result :
Thanks a lot for Andrew! XD