【问题标题】:Django: in rawSQL get limit of rows and date.yearDjango:在 rawSQL 中获取行数和 date.year 的限制
【发布时间】:2014-03-28 00:53:30
【问题描述】:

我想获取“年份”中带有 outDate 的项目,并且只获取顶部“num”行。

这是我的代码

            year = form.cleaned_data['year']
            num = form.cleaned_data['limit']

            cursor = connection.cursor()
            cursor.execute("SELECT br.callNumber_id, bk.title, COUNT(br.callNumber_id) as borrows FROM books_borrowing, books_book bk WHERE bk.id = br.callNumber_id br GROUP BY br.callNumber_id ORDER BY borrows DESC" )
            books = cursor.fetchall()

我尝试添加 LIMIT num 和 year(br.outDate) = year 但我收到错误提示我的语法不正确。我在 Django 中使用 mySQL。

我应该怎么做才能实现我的 SQL?

【问题讨论】:

  • 你忘记了books_borrowing br books_book bk之间的 ,
  • 你没有回答我的问题
  • 你忘记了, - 一个逗号
  • 这不能解决我的问题.....

标签: sql database django web


【解决方案1】:

您的查询语法看起来不太正确。您需要正确地为 books_borrowing 命名为 br。

尝试以下方法:

cursor.execute("""
    SELECT br.callNumber_id,
           bk.title,
           COUNT(br.callNumber_id) AS borrows
    FROM books_borrowing br,
         books_book bk
    WHERE bk.id = br.callNumber_id
    GROUP BY br.callNumber_id
    ORDER BY borrows DESC
    """)

【讨论】:

    猜你喜欢
    • 2023-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多