前提・実現したいこと
SQLAlchemyをもちいて、MySQLサーバーを操作しているのですが、SQLAlchemyにIFNULL()
関数が存在しません。
インターネットで調べているとsqlalchemy.sql.functions
にあると書いてあるのですが、インポートしようとしても存在していないというエラーが発生します。SQLAlchemyでIFNULL関数を(ないしはそれに似たもの)はあるのでしょうか?
該当のソースコード
Python
1import datetime 2from sqlalchemy.sql.functions import count, current_date 3 4from .setting import session # セッション情報です。 5from .table import * # テーブルの定義です。 6 7def fetch_books(user_id): 8 not_review_questions = session.query(Question.book_id, count('*').label('count')). \ 9 filter(Question.question_review_date <= current_date()). \ 10 group_by(Question.book_id). \ 11 subquery() 12 questions = session.query(Question.book_id, count('*').label('count')). \ 13 group_by(Question.book_id). \ 14 subquery() 15 16# ここでquestions.c.countとnot_review_questions.c.countにifnull関数を使用する予定でした。 17 books = session.query(Book.id, Book.book_name, questions.c.count, not_review_questions.c.count). \ 18 outerjoin(questions, Book.id == questions.c.book_id). \ 19 outerjoin(not_review_questions, Book.id == not_review_questions.c.book_id). \ 20 filter(Book.user_id == user_id). \ 21 order_by(Book.id).all() 22 23 return books
試したこと
sqlalchemy.sql.functions
からifnull
をインポートしようとした。(エラー)
補足情報(FW/ツールのバージョンなど)
- Python 3.7.1
- SQLAlchemy 1.3.2
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/22 01:21
2019/04/22 01:40
2019/04/22 01:41
2019/04/23 03:25