問題タブ [multiple-tables]
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.
mysql - 他のテーブルからの WHERE でほとんどの出現を数えます
コレクションを整理するための映画 DB がありますが、それを使用して mySQL をさらに学習しています。開発に沿って、バンプ(たくさん)を見つけましたが、今のところ私の問題は次のとおりです。
表ACTORS
:
- id_actor
- 名前
- セックス
表MOVIEACTORES
:
- id_movieactors
- id_movie
- id_actor
ほとんどの映画に出演した俳優のトップ 5 (トップ 10、トップ 20 など) を数えてから、ほとんどの映画に出演した女優のトップ 5 を数えたいと思います。
私はこれを持っています:
しかし、このコードは俳優と女優を区別しません。解決策は簡単かもしれませんが、私の知識では今のところ手が届きません。誰?
mysql - 最速のクエリ応答のために複数のテーブル構造を選択する方法
私は、地理ごとにイベントをリストしているデータベースを持っています (現在、データベースには約 100000 のイベントがあります)。現時点では、適切に正規化されたスキーマにあります。テーブル内のイベントにtevent
は、外部キーを持つfkvenue
テーブル内の会場を指す外部キーがあります。tvenue
fkcity
tregion
tcountry
したがって、イベントが最も多い国を見つけるためのクエリはかなり複雑で、内部結合が 3 つ以上あります。
select r.fkcountry,count(distinct e.id) from tevent e
inner join tvenue v on e.fkvenue=v.id
inner join tcity cy on v.fkcity=cy.id
inner join tregion r on cy.fkregion=r.id
group by r.fkcountry order by count(distinct e.id) desc
私は物事をスピードアップする方法を見つけようとしています.国ごとにイベントを直接マッピングすると役立つかもしれないと思いました. teventcountry
次のはるかに単純な結果の構文を使用して、マップ テーブルを作成しました。
select ec.fkcountry,count(distinct e.id) from tevent e inner join teventcountry ec on ec.fkevent=e.id group by ec.fkcountry order by count(distinct e.id) desc
驚いたことに、これは正反対の効果をもたらしました。新しいクエリは、以前のはるかに複雑なクエリの約 5 倍の時間がかかりました。
誰かがこれを説明してくれますか、またはマルチテーブルクエリの速度を理解するのに役立つ良いリソースを教えてくれますか? または、この種の好ましいパターンを教えてください。
(だれかが尋ねる前に、タイミングの結果を有効にするために、実行の合間に「クエリ キャッシュのリセット」を行うように注意しました。はい、すべてを適切にインデックス化しました!!!!)
ありがとう
デビッド
entity-framework - Entity Framework は、複数のテーブルを 1 つのエンティティにマップします。同時実行チェック
2 つのテーブルにマップされた 1 つのエンティティを取得しました。このテーブルの最初にタイムスタンプ フィールドがあります。私が望むもの-最初のテーブルからフィールドを変更すると、タイムスタンプ列との同時実行について最初のテーブルをチェックする必要があります。2 番目のテーブルは更新されません。2 番目のテーブルを変更すると、2 番目のテーブルが更新されます。最初のテーブルは変更しないでください。
これは、スキーマのタイムスタンプ フィールドに「Concurrecny=None」を設定した場合に機能します。タイムスタンプ フィールドに「Concurrecny=Fixed」を設定し、2 番目のテーブルのプロパティを変更すると、最初のテーブルが現在の値で更新されます。
この 2 つのテーブルの 1 つだけに対して同時実行チェックを行うにはどうすればよいですか?
.net - 複数のオラクルクエリの問題
.NET ページからクエリを実行しようとしていますが、複数のクエリがあると問題が発生するようです。
私のクエリはこれに似ています
SELECT * FROM table1; SELECT * from table2
しかし、.Net ページからこれを実行すると、無効な文字エラーが発生するようです。SQL 開発者では問題なく動作しますが、.NET ページに配置したときにのみ失敗します。
一部の Web サイトでは複数のクエリを実行するためにこれが必要であると示唆されているため、クエリにBEGIN
andを追加しましたが、次のエラーが表示されます。END
ORA-06550: 行1、列7: PLS-00428: このSELECT文にはINTO句が必要です
誰でもこれに光を当てることができますか?
前もって感謝します!
編集
ここにいくつかのコードがあります
sql - 複数のテーブルでの MAX の使用
製品、PC、ラップトップ、およびプリンターの 4 つのテーブルがあります。
私が必要としているのは、価格が最も高い製品 (PC、ラップトップ、またはプリンター) のモデル番号を見つけることです。2 つのモデル番号の価格が最も高い場合、両方を表示する必要があり、case を使用すると 1 つだけが選択され、case ステートメントが終了するため、これは case ステートメントでは機能しません。UNION 演算子を使用してこれを実行したいのですが、その方法がわかりません。これは私がこれまでに持っているものです:
しかし、これは間違った構文であり、その理由はわかりません。何か案は?
mysql - MySQL:単一のクエリを使用して複数のテーブルを削除する方法は?
削除クエリにテーブル名を実際にリストせずに複数のテーブルを簡単に削除したいのですが、削除するテーブルには「wp_」という接頭辞が付いています
.net - Oracle から返される名前付けテーブル
.NET で Oracle データ ライブラリを使用して、プロシージャから返される複数のテーブルを (複数のアウト カーソルとして) 取得しています。このデータは に挿入されていDataSet
ます。私が抱えている問題は、テーブルの名前Table
が 、Table1
、などであることです。これらのテーブルの名前を変更する前にTable2
(Oracle データ アダプターなどを介して) 何らかの方法がありますか?DataSet
sql - データベース テーブル。それらを広げるか、一緒に無効にしますか?
データベース設計に関する簡単な質問です。
データベースにデータを保存しているとすれば、ユーザーに関連付けられたUser
2 つの (一見) 別々の形式のデータを特定できます。アカウント データ、およびプロファイル データ。
ほとんどのプロファイル データはオプションであり、不必要です (可能であり、多くの場合そうなるでしょうNULL
) が、アカウント データはユーザーにとって不可欠であり、サービスを使用する能力 (ほとんどまたはまったくない可能性がありますNULL
)
これを 2 つのテーブルに分割する利点はあります1-to-1
か? 単に設計の観点から見ると、論理的に思えますが、パフォーマンスについて話すとき、これは一般的な (良い) 習慣ですか?
mysql - 複数のテーブルからデータを取得するには、複数のテーブルの基準を使用する必要があります
特定のSQLクエリに関して少し問題があります。2つのテーブルのデータを結合する必要がありますが、3番目のテーブルを使用してデータを制限します(必ずしもデータを取得する必要はありません)。表は次のとおりです。
特定のグループのすべてのメンバーのすべての料金を検索する必要がありますが、MEMBERSテーブルから名前と名前も取得したいと思います。私がこれまでに思いついたクエリは次のとおりです。
私も試しました:
…しかし、どちらも必要なデータを返しません。私はこれを考えすぎていると確信していますが、私は一生の間正しい値を取得することはできません。デカルト積のように見えるものを取得し続けます-それにもかかわらず、それは明らかに多すぎる行と悪いデータを返しています。
php - 2つのテーブルからのSELECT各テーブルの異なる列が$idORDER BY共通列(PHP / MySQL)に等しい場合
2つのテーブルとORDERBY日付(両方にある列)からSELECTしようとしています。1つのテーブル(tableA)には「A」という列があり、もう1つのテーブル(tableB)には「B」という列があります。array_key_exists()を使用して2つを区別します(「A」キーが存在する場合は、配列を実行します。 FunctionA()、「B」キーが存在する場合は、FunctionB()を介して配列を実行します。必要なのは、最新の(日付ごとの)20個のエントリだけです。これを実現するにはSQLクエリが必要です。
「同じように構造化されている場合は、単一のテーブルを使用する必要があります」という返信があることはすでに知っていますが、tableAはtableB(tableAの列がはるかに多い)とは大幅に異なるため、これは行いたくありません。また、単一のテーブルを使用してデータを格納すると、tableB用にフォーマットされたエントリの空の列が大量に発生します。tableBはtableAの列の大部分を必要としないため、非常に見栄えの悪いテーブルフォーマットになることは言うまでもありません。
両方のテーブルのデータを順序付けられた(日付順)方法で、1つの単一のストリームで表示したいだけです。
ちなみに、WHERE tableA.poster_id =$idとtableB.receiver_id=$idを選択する必要があります。
解決:
同じジレンマを持つ他の誰かがやってきた場合に備えて、これを更新しています。@Erik A. Brandstadmoenが丁寧にくれたSQLクエリを実装した後、これは基本的に私のコードが次のようになってしまったものです。