問題タブ [rawsql]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - python3/Django 1.7で生のSQLを実行する
モデルの履歴データが必要なので、simple_history を使用しています。pool_historicalpo_staff という「歴史的」モデルを持つ po_staff というモデルがあります。ここで、pool_historicalpo_staff に基づいて、各従業員の最後のレコードを含むクエリセットを取得したいと考えています (実際のクエリははるかに複雑であるため、できるだけ単純にしようとしました)。私は現在SQLLiteに取り組んでいます
履歴モデルには、次のデータが含まれています。
このコードは正常に動作します (アルファベット順):
staff_nr はユーザーから変更できるため、グループ化には「id」を使用する必要があります (ただし、従業員は同じままです)。
問題 1: ユーザーは、alpabetical と staff_id の間で結果の順序を選択できます
これを可能にするために、クエリに 3 番目の引数を追加しました。
クエリは機能しますが、アルファベット順ではなく「id」順に並べられます。
問題 2: 他のモデルに対してもクエリを実行する必要があります。モデルと order_by だけが異なります。すべてのモデルに対してほぼ同じクエリを記述したくないため、より柔軟にしようとしました。
このクエリを実行するとエラーが発生します。
すべてを明確に説明したことを願っています。私はdjangoが初めてで、それが私の最初の生のSQLです
助けてくれてどうもありがとう!
mysql - Django: LEFT JOIN を使用して生の SQL を集約し、外部キーを使用せず、DetailView (コンテキスト) に注入する
Django 1.7 で webapp を刷新しています。とても楽しかったです...そして涙と血!
過去数日間、単純な LEFT JOIN を実行して、FK のないテーブルからいくつかの値を集計するのに苦労していました。クエリの結果はクラス ビュー (DetailView) に表示されます。Web 全体 (World Wide Web を含む) で答えを検索し、検索しても役に立たなかったと信じてください。
テーブルに外部キーがないのはなぜですか? 元のデータベース設計には何もありませんでしたが、現在、テーブルは数億行を保持しています。FK 制約を追加することもできますが、それには費用がかかりますが、物事が中断され、抽出と読み込みを行うスクリプト全体を作り直す必要があります。
Djangoによると、
raw() には、それを非常に強力にする他のオプションがたくさんあります...
そうだね。真実はmodel.objects.raw()であり、その力は制限されており、私がやりたいことに対しては機能しません (集計しないだけです)。
テーブル/モデル (簡略化)
MySQL/Django クエリ (簡略化)
とても無邪気に見えますよね?なんてこった!ジャンゴの悪夢だ!もちろん、Django で__setを使用して簡単に実行できますが、残念ながら、FKがありません。
私の問題に加えて、DetailView テンプレートのコンテキストに集計を追加しようとしています。そこで、View()でハッキングして、DetailView カスタム クラス内に関数を作成しました。
そして、テンプレートで:
...しかし、失敗しました。
編集: 今日解決策を見つけました!そして、その愛を世界に広めたい!以下の私の答えを見てください。
python - MongoDB を使用するが rawsql を使用する Django (設計に関する見解)
私は Python で Web サイトを作成することを計画しており、より構造化され、大規模なアプリケーションに適しているとして Django を使用することを考えています。
過去にFlaskを使用したことがあり、生のSQLでsqlalchemyを使用してデータベースとやり取りしましたが、Djangoで同じことを達成する方法がわかりませんか? ご覧のとおり、settings.py で db エンジンを指定する必要があります。私のバックエンドは MySQL / MongoDB ですが、生の SQL にこだわりたいと思っています。pymongo を使用するクラスを作成しました。django モデルは、mongo クラスから特定のメソッドを呼び出して DB にアクセスします。Django設定ファイルにMongoDBエンジンが指定されていません。だからデザインは、
ビュー -> モデル -> MyMongoDAL (このクラスには mongoDB に関連するすべてのメソッドがあります)
バックエンドとしてSybaseでこれを試し、既存のFlaskプロジェクトを移植しました-> Django(sybaseのサポートは本当にひどいです!したがって、私自身のDAL)と、ほとんど変更を加えずに魅力的に機能します。
私はMongoDBでこのDjangoを経験しましたが、私の質問に答えていません.私がやったことは良いですか悪いですか? 同様の状況でのあなたの経験から、アプリが容量の面で成長する後の段階で私が直面するもの.
ありがとう、NM
python - Python: リスト データを含む In 句を使用して SQL 生クエリを作成する
最近、生のSqlクエリを準備している間、しばらく立ち往生しましたがIn clause
、In clause
データはpython list
. さて、ここに私の例を挙げましょう。
欲しかったSQLクエリ
持っていたデータから
しかし、いくつかの練習をした後、私はこのようなものの解決策を思いつきました
今私の質問は、これはエレガントなソリューションですか、それとも Python には他にもいくつかの最適化されたアプローチがあります。これについてあなたの意見を持っていただければ幸いです:)。
別のソリューションに到達した編集
注:さらに最適化できる場合は、引き続き皆さんからのビューを探しています。
haskell - Yesod カスタム RawSql
yesod でカスタム rawSQL を作成することは可能ですか?
たとえば、画像のモデルがあります
そして、私はrawSQLクエリを持っています
ただし、この文字列クエリ コードの代わりにSELECT ?? from images;
. したいと思いSELECT id, CONCAT('upload/', filename) as path from images;
ます。
よろしくお願いします。
c# - NHibernate マップされていないテーブル - オブジェクトは複数列型です - ToListResultTransformer
データベースから構築された生のSQLクエリを実行するNHibernateがあります。ソフトウェアでは、使用者は定義された順序でテーブルといくつかの列を選択できます。私のソフトウェアでは、この情報を使用して、テーブルから定義された列を選択し、列を 1 つの列に連結する SQL クエリを作成します。ここに簡単な例があります。
ユーザーは、テーブルから列FirstName
undを選択することを定義します。次に、次の select ステートメントを作成します。SurName
User
そして今、selectステートメントを使用しようとしています:
しかし、私の問題はGenericADOException
、メッセージが表示されることです
オブジェクトは複数列タイプです
私の問題については、インターネット上であまり見つかりませんでした。このエラーなしで同じタスクを実行するスレッドのみ: NHibernate SQL Query mapping on Single Column Result
python - Django で生の SQL クエリによって返されるデータに関する問題
生のSQlクエリを使用してdbからデータをフェッチしています。これらのdjangoドキュメントに従っています。django docs でわかるように、フィールド名と値を含む dict を返す関数dictfetchallがあります。私はこのdictを要件に従ってjsonに変換していますが、出力カーソルの戻り値でわかるように、次のようなユニコードで値を返します
したがって、エラーが発生するため、dict を json に変換することはできませんDecimal('0.63') is not JSON serializable
。では、生のSQLがdbから単純な値を送信するのを防ぐにはどうすればよいですか、またはdictfetchall関数を編集する必要があります。