問題タブ [natural-join]
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.
oracle - Oracle 自然結合とカウント(1)
Oracle 11g で複数の自然結合を使用して Count(1) を実行すると、デカルト結合が実行され、カウントがオフになる理由を知っている人はいますか?
そのような
これは、次の場合に 300 万行のように引き戻されます。
正しい量である 36000 行のように引き戻されます。
何か足りないだけですか?
この結果を得るために使用しているテーブルを次に示します。
これは Oracle 9i では問題ではありませんでしたが、11g に切り替えたときに問題になりました。
sql - SQL 自然結合 POSTGRES
そのような方法でデータをオーバーラップしようとすることに慣れていないため、またはそれが実現可能であるかどうかに慣れていないため、どのような結合が必要かわかりません。
2 つのテーブルがあり、どちらも同様のデータ セットを共有し、両方とも 3 番目の親テーブルに関連しています。Room_id.
各部屋 (room_id) の平均価格を格納する Room_rates というテーブルがあります。
そして、特定の日付の料金を含む Availables というテーブル
Availables
現在、特定の日付範囲の現在のデータが存在するか、存在しないかの 2 つの個別の検索結果を使用しています。そうでない場合は、Room_rate
平均のみを使用してバックアップ クエリを使用します。
利用可能な価格がある場合は Availables を使用したいと思いますが、価格が利用できない場合、またはレコードがまったくない場合は、Room_rates に参加して空白を埋めます。
どうすればこれを達成できますか?
sql - プログラミング言語で SQL を記述するときに、自然結合または暗黙的な列名を使用することは適切ではありませんか?
Natural Join を使用すると、両方のテーブルの列名が同じ場合にテーブルが結合されます。しかし、PHP で記述し、DBA が両方のテーブルにいくつかのフィールドを追加すると、Natural Join が壊れる可能性があります。
Insert についても同じことが言えます。
そうすると、DBA がいくつかのフィールドをテーブルに追加するときに (列 2 または 3 など)、コードが破損するだけでなく、テーブルが汚染されます。そのため、SQL ステートメントがプログラミング言語内で記述され、大きなプロジェクトのファイルに保存される場合は、常に列名を綴るのが最善です。
join - Lossless Join プロパティ
リレーションスキーマのロスレス結合プロパティが何を意味するのか、誰か説明してもらえますか?
正規化しながら関係を分解する際に、情報/データのセマンティクスを維持する能力ですか?
sql - NATURAL (JOIN) は実稼働環境で有害と見なされますか?
SQL 結合の NATURAL 短縮形について読んでいるのですが、いくつかのトラップがあります。
- 同じ名前のすべての列ペアが自動的に取得されます (USING を使用して明示的な列リストを指定します)。
- いくつかの新しい列が追加された場合、結合出力も「予期せず」変更される可能性があります。これは、複雑な構造では (NATURAL の仕組みを知っていても) それほど明白ではない場合があります。
sql - 自然結合 -- リレーショナル理論と SQL
この質問は、CJ Date のSQL and Relational Theory: How to Write Accurate SQL Code を読み、インターネットで結合について調べることから来ています (これには、ここ NATURAL JOIN に関する複数の投稿に出くわすことも含まれます (また、SQL Server のサポートの欠如についても含まれます)。 )
ここに私の問題があります...
一方では、リレーショナル理論では、自然結合のみが発生する必要があります (または、少なくとも非常に好まれます)。
一方、SQL では NATURAL JOIN を使用せず、代わりに別の手段 (制限付きの内部結合など) を使用することをお勧めします。
これらの調整は次のとおりです。
- 自然結合は真の RDBMS で機能します。ただし、SQL はリレーショナル モデルを完全に再現することに失敗しており、一般的な SQL DBMS のどれも真の RDBMS ではありません。
および/または
- 優れた/優れたテーブル設計は、自然結合によって生じる問題を排除/最小化する必要があります。
?
sql - 大きなテーブルでの NATURAL JOIN
2 つの大きなテーブルで単純な自然結合を実行しています。
- ポリゴンには 68,000 行 (45 MB) が含まれます
- roadshydro には約 200 万行 (210 MB) が含まれています。
これは、データベース エンジンが内部で自然結合を実行しながら、68,000*200 万行のデータ セットを作成するということですか。その場合、必要なメモリの量は 45*210 MB である必要があり、これは私のシステムの容量 (わずか 1.5 GB) よりもはるかに大きくなります。
このクエリを実行すると、5 分後にシステムがクラッシュします (突然シャットダウンします)。データベースで 250 MB のデータを処理できないのですか? では、データベースは何の役に立つのでしょうか?
上記の質問で「自然結合」という言葉に言及したため、多くの友人が混乱したようです。私が使用していた実際の空間クエリは次のとおりです。
ここで、polygon と roadshydro テーブルには、それぞれ OID と the_geom という 2 つのフィールドがあります。明らかに、これは 2 つのテーブルの外積であり、いくつかの共通キーでの Natural Join ではありません。
上記のクエリを実行すると、メインメモリの消費量を監視します。それは何も起こりません。メモリ消費量はわずかでもなく、出力も得られませんが、CPU 使用率はほぼ 100% です。データベースはまったく計算を行っていないようです。ただし、クエリから where 句を削除すると、メイン メモリの消費量が徐々に高くなり (5 ~ 6 分後)、システムがクラッシュし、マシンが突然シャットダウンします。これが私が経験していることです。where句を削除することの何が特別なのですか?postgres がクエリの実行に失敗する理由 !! この行動にビックリ。
sql - SQL クエリの問題 - 自然結合とテーブルの命名
データベース クラスのクエリで問題が発生しています。次のスキーマがあるとします。
- 顧客 (
customerid, first_name, last_name, address, city, state, phone, status
) - 支店 (
branchno, address, city, state, phone, manager_name
) - 従業員 (
empno, firstname, lastname, address, city, state, phone, emergency_contact, title, managerno
) - 客室 (
roomno, branchno, price, bed_size
) - 予約 (
roomno, branchno, customerid, checkin_date, checkout_date, empno
)
最も高い部屋を借りた顧客を見つけたいです。このクエリを試してみました...
問題は、テーブルの名前を変更したい方法から来ています。デカルト積のコンポーネントとして、予約と部屋の自然結合を使用したいのですが...どうすればよいですか?
どうもありがとうございました。
sql - 自然結合と内部結合の違い
自然結合と内部結合の違いは何ですか?
mysql - 私の(複雑ではない)MySQL-Queryの何が問題になっていますか?
私は両方の目が見えないかもしれませんが、多くのバージョンを繰り返して試行します...ハイフンとASステートメントを削除しました...
私はいつもMySql5.1サーバーからの解析エラー1064で終わりました。私はこれが有効であると本当に信じています、SQL Answers:
何か提案はありますか?
#1064-SQL構文にエラーがあります。3行目の「ON(corporations.id =corporations_dpa_articles.corporation_id)NATURAL JOIN dpa_a」の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
事前にどうもありがとうございました。