問題タブ [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.

0 投票する
1 に答える
238 参照

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です

助けてくれてどうもありがとう!

0 投票する
1 に答える
938 参照

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 カスタム クラス内に関数を作成しました。

そして、テンプレートで:

...しかし、失敗しました。

編集: 今日解決策を見つけました!そして、その愛を世界に広めたい!以下の私の答えを見てください。

0 投票する
0 に答える
182 参照

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

0 投票する
1 に答える
1214 参照

python - Python: リスト データを含む In 句を使用して SQL 生クエリを作成する

最近、生のSqlクエリを準備している間、しばらく立ち往生しましたがIn clauseIn clauseデータはpython list. さて、ここに私の例を挙げましょう。

欲しかったSQLクエリ

持っていたデータから

しかし、いくつかの練習をした後、私はこのようなものの解決策を思いつきました

今私の質問は、これはエレガントなソリューションですか、それとも Python には他にもいくつかの最適化されたアプローチがあります。これについてあなたの意見を持っていただければ幸いです:)。

別のソリューションに到達した編集

注:さらに最適化できる場合は、引き続き皆さんからのビューを探しています。

0 投票する
1 に答える
176 参照

haskell - Yesod カスタム RawSql

yesod でカスタム rawSQL を作成することは可能ですか?

たとえば、画像のモデルがあります

そして、私はrawSQLクエリを持っています

ただし、この文字列クエリ コードの代わりにSELECT ?? from images;. したいと思いSELECT id, CONCAT('upload/', filename) as path from images;ます。

よろしくお願いします。

0 投票する
1 に答える
920 参照

c# - NHibernate マップされていないテーブル - オブジェクトは複数列型です - ToListResultTransformer

データベースから構築された生のSQLクエリを実行するNHibernateがあります。ソフトウェアでは、使用者は定義された順序でテーブルといくつかの列を選択できます。私のソフトウェアでは、この情報を使用して、テーブルから定義された列を選択し、列を 1 つの列に連結する SQL クエリを作成します。ここに簡単な例があります。

ユーザーは、テーブルから列FirstNameundを選択することを定義します。次に、次の select ステートメントを作成します。SurNameUser

そして今、selectステートメントを使用しようとしています:

しかし、私の問題はGenericADOException、メッセージが表示されることです

オブジェクトは複数列タイプです

私の問題については、インターネット上であまり見つかりませんでした。このエラーなしで同じタスクを実行するスレッドのみ: NHibernate SQL Query mapping on Single Column Result

0 投票する
0 に答える
679 参照

python - Django で生の SQL クエリによって返されるデータに関する問題

生のSQlクエリを使用してdbからデータをフェッチしています。これらのdjangoドキュメントに従っています。django docs でわかるように、フィールド名と値を含む dict を返す関数dictfetchallがあります。私はこのdictを要件に従ってjsonに変換していますが、出力カーソルの戻り値でわかるように、次のようなユニコードで値を返します

したがって、エラーが発生するため、dict を json に変換することはできませんDecimal('0.63') is not JSON serializableでは、生のSQLがdbから単純な値を送信するのを防ぐにはどうすればよいですか、またはdictfetchall関数を編集する必要があります。