django的orm多表查询作业第五题答案

5.每个作者出版的所有书的最高价格以及最高价格的那本书的名称.

  • 用django的模型类写不出来的,只能用原生sql写这题
  • 关于第五题,mysql5.7及以上版本,使用下面的答案
      set sql_mode='STRICT_TRANS__TABLES';#先将当前会话的sql_mode的only_full_group_by模式去掉
     第一种写法加limit: select * from (SELECT app01_book.xx,app01_book.price,app01_author.id from app01_author 
	INNER join app01_book_authors on app01_author.id = app01_book_authors.author_id
    INNER JOIN app01_book on app01_book_authors.book_id = app01_book.id ORDER BY app01_book.price desc LIMIT 100) 
		as t GROUP BY t.id;
      第二种写法加having:select * from (SELECT app01_book.xx,app01_book.price,app01_author.id from app01_author 
	INNER join app01_book_authors on app01_author.id = app01_book_authors.author_id
    INNER JOIN app01_book on app01_book_authors.book_id = app01_book.id HAVING 1=1 ORDER BY app01_book.price desc) 
		as t GROUP BY t.id;

  • 5.6版本使用下面的答案
      select * from (SELECT app01_book.xx,app01_book.price,app01_author.id from app01_author 
	INNER join app01_book_authors on app01_author.id = app01_book_authors.author_id
    INNER JOIN app01_book on app01_book_authors.book_id = app01_book.id ORDER BY app01_book.price desc) 
		as t GROUP BY t.id;

-------------------------------------------

个性签名:代码过万,键盘敲烂!!!

如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!

原文地址:https://www.cnblogs.com/weiweivip666/p/13368711.html