問題タブ [query-builder]
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.
doctrine - クエリ ビルダー/DQL が INNER JOIN で機能しない - 構文の問題
ここに構文の問題があることは知っていますが、理解できません。5 つのテーブルの SELECT および INNER JOIN を実行しようとしていますが、Symfony は、JOIN 内のエンティティが定義される前に使用されていると不平を言っています。
実際のエラーは次のとおりです。[Semantical Error] line 0, col 121 near 'I ON C.id = ': Error: Identification Variable MySiteBundle:Items used in join path expression but was not defined before.
これがPHPコードです。
注:このクエリを 2 つの列、2 つのテーブル、および 1 つの結合に短縮して、質問を簡潔にし、要点を示しました。実際のクエリははるかに長く、同じエラーが発生しています。
アップデート
示唆されているように、私は DQL コードを廃止し、Query Builder コードを使用しています。という非常によく似たエラーが表示されます'Categories c': Error: Class 'Categories' is not defined
。私のQBコードは以下です。
助言がありますか?
tsql - selectunionによって作成されたリターンテーブルに重複する主キー
searchitという次のクエリがあります
このクエリは実行され、クエリビルダーに正しい結果を返します。ただし、クエリはコードビハインドで実行する必要があるため、次の行があります。
表のいずれの列のどの行にもヌルフィールドはありません。テーブルは十分に小さいので、nullデータを簡単に検出できます。bIDはblog_topicsのキーであり、cIDはブログコメントのキーであることに注意してください。
いずれにせよ、これを実行すると、次のエラーが発生します。
制約を有効にできませんでした。1つ以上の行に、null以外、一意、または外部キーの制約に違反する値が含まれています。
テーブルには1xNの関係があり、ブログエントリごとに多くのコメントがあります。DISTINCTを使用してクエリを実行し、戻りフィールドからComment_Narrativeを削除すると、データが正しく返されます(ただし、他の行が必要です)。ただし、他の行を返すと、上記のエラーが発生します。
リターンテーブルには、そこに配置しなかった制約があることを示していると思います。したがって、テーブルの1つに主キーが定義されているため、クエリ自体の呼び出しからその制約を何らかの形で継承している必要があります。持つ必要があります)。しかし、なぜクエリビルダーでクエリが正常に機能するのでしょうか。クエリビルダーは、bIDが結果に重複していることを気にしません(そして、そうすべきではありません)が、コードビハインドは気にします。
補遺:
テストと同じように、
- 返品リストからbIDを削除しましたが、それでもエラーが発生します。
- blog_topics.bIDから主キーを削除しましたが、同じエラーが発生します。
これは、問題を引き起こしているのは私のbIDがだまされているという事実ではないことを私に教えてくれます。
別のテスト:私はデザイナーコードに入りました(私はそれが厄介であることを知っています、私はただ必死です)。私は以下を追加しました:
奇妙なことに、実行すると、以前と同じエラーが発生し、エラーメッセージに加えた変更が表示されません。
私は困惑しています....多分それが私がトライキャッチで何もしていないのを見て、私のために最適化しているのでない限り。
別の補遺:デザイナーに追加したテストコードを無視しているのではないかと疑って、キャッチに何かを追加しました。同じエラーが発生し、このコードが表示されないように動作します。(まあ、わかりました。以前と同じようにブラウザに出力されるため、このコードは表示されません。)
元の投稿を作成したとき、私はすでに回避策を試みていました。うさぎの穴をどこまで下る余裕があるのかわかりません。たぶん、私は混乱全体をC#に読み込んで、すべての結合を行い、自分自身をがらくたにします。私は最近習慣から抜け出したばかりなので、それをするのは本当に嫌いですが、神とマイクロソフトが意図した方法でツールを使用するために誠意を持って努力していると思います。ウィットエンドから、tff。
doctrine - Doctrineエンティティマネージャー内のSymfony2サブクエリ
このクエリを実行する必要があります:
Symfony2でエンティティマネージャーを使用します。
私の基本的なクエリビルダーは次のようになります:
しかし、これにサブクエリを追加する方法を理解することはできません。
別のクエリを作成して、次のように結合してみました。
しかし、私は得ます:
entity-framework-4 - Entity SQL Sort Then LINQ to Entities GroupBy が IOrderedQueryable を返さない
動作: UI はエンティティ SQLソート式を jqGrid から DAL に送信し、サービス レイヤーに返される Where 句をいくつか適用します。私のサービス層は、Skip()..Take() を IQueryable に適用する PaginatedList オブジェクトを作成します。例:
機能しません: GroupBy() を適用してから Select() を適用すると、同じタイプのエンティティ (ワークシート) のリストが返されます。例:
NotSupportedException がスローされます: メソッド 'Skip' は、LINQ to Entities の並べ替えられた入力に対してのみサポートされます。メソッド「OrderBy」は、メソッド「Skip」の前に呼び出す必要があります。
最初のスニペットは esql ソート式を適用する IOrderedQueryable を返すようですが、2 番目のスニペットはそうではありませんか? または、 GroupBy() はクエリ/コレクションの順序を削除しますか? これが事実であり、LINQ をエンティティに適用する前に esql を適用する必要があるため、SQL ソート + LINQ GroupBy をどのように達成できますか?
関連:
ObjectQuery が実際に IOrderedQueryable になるのはいつですか?
ESQL と LINQ TO Entities を混在させてはいけない理由
sql - フォーラムからすべての投稿をフェッチするためのOracleクエリ
Oracleをrdbmsとして使用してフォーラムを構築していますが、すべてのフォーラム投稿をフェッチして一部のデータを表示する1つのクエリで問題が発生しています。私が抱えている問題は、最後のディスカッションポスターを入手することです。私のクエリでは、最後の投稿者のIDしか取得できませんでしたが、usersテーブルから彼のユーザー名を取得したいと思います。これは私が持っているものです:
私は次のスキーマを持っています:
そして、私はこのクエリを行います:
私はidとしてlatest_post_byを取得しています、私はユーザー名を表示したいです
symfony - DoctrineSymfony2のEXISTSを使用したクエリ
クエリビルダーを使用して次のクエリを実装するにはどうすればよいですか?
存在チェックのない部分は簡単ですが、?を実装する方法はありEXISTS
ますか?
php - Doctrine 2 in Symfony 2 - 関連付けによる QueryBuilder のフィルタリング
と の 2 つのクラスがUser
あり、ロールを持つユーザーのクエリを返すRole
を作成する必要があります。Symfony 2 のエンティティ フォーム フィールドにこれが必要です。フォーム クラスの定義には、前述のフィールドの次のスニペットがあります。QueryBuilder
ROLE_PROVIDER
そして、私のカスタムには、オブジェクトUserRepository
を返す次の関数があります。QueryBuilder
もちろん、これは機能しませんが、私のニーズを説明するために貼り付けました。
私は周りを見回してきましたが、Doctrine2 は関連によるフィルタリングをネイティブにサポートしていないようです。このページDQL
では、彼らはそう言っており、この種のフィルタリングに使用することを提案しています. 私の問題は、文QueryBuilder
からオブジェクトを作成する方法が見つからないことです。DQL
適切なクエリも提供してDQL
いただければ、非常に感謝しています...
ご協力いただきありがとうございます!
join - doctrine orm count 1:n参加時の関係
symfony2のadmingeneratorモジュールでdoctrineormを使用していますが、2つのテーブルを含む選択カウントを実行できません。 これについての考えを本当にいただければ幸いです。よろしくお願いします!
これはquerybuilder式です:
私が使用している2つのエンティティは次のとおりです。
と
Friendshipsのアソシエーションアノテーションはdoctrine:generate-entities(Users.fbidからのfbidの外部キー参照を含む)によって自動的に生成されましたが、Users(1:n)のアノテーションは私の知る限り手動で挿入されました。
クエリビルダーとアノテーションを何度も編集しようとしましたが、最終的には次のようになります。
テンプレートのレンダリング中に例外がスローされました(「キャッチ可能な致命的なエラー:クラスDoctrine \ ORM \ PersistentCollectionのオブジェクトをC:\ xampp \ htdocs \ symfony2 \ app \ cache \ dev \ twig\eaで文字列に変換できませんでした\ 85 \ 2b678090e942db52cc01e3950dbc.php line 225 ")Admingenerated / ShlomiUsersBundle / Resources / views / UsersList / index.html.twig atline92。
ありがとう、イオン
asp.net - クエリ ビルダーの構築に必要なガイダンス
私は、ユーザーが検索語を入力してデータベース テーブル内の 1 つのフィールド (テキスト) を検索できるようにするクエリビルダーを構築する任務を負っています。ユーザーは、検索式で「AND」「NOT」および「AND NOT」を使用できるようにする必要があります。
これを行うために式ツリーを使用することを見てきましたが、誰かがこれを簡単に実現する方法の例を持っていることを望んでいました.
次のリンクを見つけました: http://msdn.microsoft.com/en-us/library/bb882637.aspx
私が抱えている問題は、式の根を見つけて左と式が等しいことを確認する方法に頭を悩ませていることです。演算子の数が奇数の場合、真ん中を見つけるのは簡単ですが、偶数の場合、左を大きくする必要がありますか?それとも右?または、オペレーターのタイプを見る必要がありますか?
どんな助けでも大歓迎です。
mysql - 複雑な方法での symfony2 クエリビルダー
これを行う最善の方法を知る必要があります...データベースにテーブルがあります。この投稿では、TCと呼びます。興味のあるフィールドはいくつかあります。
id, daydate, noteBy_id, and totaltime
noteBy_id は user テーブルに割り当てられていますが、ここにも探しているアイテムがいくつかあります...
id, first_name, last_name, user_name, department, parentcompany
id
部門は、フィールドにandしかない 3 番目のテーブルを参照していdepartmentName
ます...
クエリビルダーを使用して、これまでにこれを作成しました:
現在、このクエリはそのまま機能しますが、次のように返されます。
実行されたクエリではデータベースに2つあるはずのアイテムが1つしかないため、これは間違っています..
次のようになります。
ただし、ユーザー ID が TC テーブルに少なくとも 1 つの一致がある場合、結果の配列にはエントリのみが存在するはずです...このクエリを理解するための助けをいただければ幸いです..