問題タブ [table-alias]

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 投票する
5 に答える
16461 参照

sql - SQL - テーブル エイリアス スコープ

「in」の代わりに「exists」を使うことを(昨日)学んだばかりです。

そして、これについていくつか質問があります:

1)私が理解した説明は、「これが優れている理由は、可能な結果の膨大なリストを作成する代わりに、一致する値のみが返されるためです」 . つまり、最初のサブクエリは 900 件の結果を返しますが、2 番目のサブクエリは 1 件 ( yes または no ) しか返さないということですか?

2) 過去に RDBMS の苦情がありました:「最初の 1000 行しか取得できない可能性があります」、この 2 番目のアプローチはその問題を解決しますか?

3) 2 番目のサブクエリのエイリアスのスコープは何ですか?... エイリアスは括弧内にのみ存在しますか?

例えば

つまり、同じエイリアス ( o テーブル othertable ) を使用すると、2 番目の "exist" で最初の exists に問題が発生しますか? それとも完全に独立していますか?

これは Oracle のみに関連するものですか、それともほとんどの RDBMS で有効ですか?

どうもありがとう

0 投票する
16 に答える
48561 参照

sql - SQL テーブル エイリアスを使用する場合

人々がテーブル エイリアスをどのように使用しているか知りたいです。私が働いている他の開発者は、常にテーブル エイリアスを使用し、常に a、b、c などのエイリアスを使用します。

次に例を示します。

私はそれらに同意しません。また、テーブル エイリアスはもっと慎重に使用する必要があると思います。

クエリに同じテーブルを 2 回含める場合や、テーブル名が非常に長く、クエリで短い名前を使用するとクエリが読みやすくなる場合に使用する必要があると思います。

また、エイリアスは単なる文字ではなく、わかりやすい名前にする必要があると思います。上記の例で、1 文字のテーブル エイリアスを使用する必要があると感じた場合は、Trip テーブルに t を使用し、セグメント テーブルに s を使用します。

0 投票する
3 に答える
712 参照

.net - SubSonicのテーブルエイリアス

SubSonic 2.1を使用してテーブルにエイリアスを割り当てるにはどうすればよいですか?

次のクエリを再現しようとしています。

私はSubSonic2.1を使用していますが、2.2へのアップグレードは(まだ)オプションではありません。ありがとう。

0 投票する
7 に答える
15086 参照

sql - Oracle SQLで特定の列を選択するのが間違っているのはなぜですか?

私は行くselectステートメントを持っているとしましょう..

これにより、テーブル内のすべての列のクエリ結果が得られます。

ここで、表の 42 列目がanimalsis_parent、結果の の直後にそれを返したいgender場合、より簡単に確認できるようになります。しかし、他のすべての列も必要です。

これは を返しますORA-00936: missing expression

Sybase では同じステートメントが正常に機能し、テーブルを機能させるにはテーブル エイリアスをテーブルに追加する必要があることはわかっていますanimals( select is_parent, a.* from animals ani) 。

0 投票する
3 に答える
1526 参照

sql - Squirrel SQL または Oracle には、クエリでテーブル名をエイリアスする方法がありますか?

OracleでSquirrel SQLを使用しています。長い名前のテーブルに対して簡単なクエリを書かなければならないことがよくあります。それらにエイリアスを付けて、「select * from footablelongname where nameField='blah'」ではなく、「select * from ft where n='blah'」のようなクエリを記述できればよいでしょう。

私はそのようなものをアプリケーションでは使用しませんが、すぐに使えるクエリには適しています。

理論的には、それぞれに新しいビューを作成できると思いますが、Squirrel SQL でこれを行うことができればよいでしょう。

0 投票する
4 に答える
13103 参照

sql - このSQLServerクエリで「foo」はどういう意味ですか?

たとえば...

ここfooに存在します...実際にはそれが何をするのですか?..

0 投票する
4 に答える
54803 参照

sql - Oracle 11g SQL でサブクエリにエイリアスを与える方法はありますか?

Oracle 11g のサブクエリに次のようなエイリアスを与える方法はありますか?

それ以外の場合は、client_ref_id に基づいて 2 つのサブクエリを結合する方法があります。自己結合があることに気づきましたが、自己結合で実行しているデータベースでは、完了するまでに最大5分かかる場合があります(実行している実際のクエリには追加のロジックがありますが、自己結合が何であるかを判断しました問題の原因)。個々のサブクエリは、数秒で完了するだけです。自己結合クエリは次のようになります。

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

sql - MySQL:ASエイリアスにワイルドカードを含めることは可能ですか?

私は複数のテーブルにまたがって同じ名前のフィールドをたくさん持っています(私はそれを継承しました-私を責めないでください;)。

すべてのエイリアスを詳細に設定する代わりに、ワイルドカードを使用してエイリアスを自動的に割り当て/追加することはできますか?

私は次のようなものを想像しています(もちろん実際には機能しません):

したがって、次のようなフィールドが返されます。

0 投票する
8 に答える
5460 参照

sql - 意見: SQL ステートメント、テーブル エイリアスを使用しますか?

私が一緒に働いている人の 1 人は、SQL エイリアスの使用について次のように述べています。エイリアスを作成するかしないか、皆さんはどう思いますか?

....

そのため、SQL をどのように記述すべきかについて、私は常に開発チームの中でも変わり者でした。学校でエイリアスの使い方を学びましたが、個人的には嫌いです。長いとステートメントが読めなくなる可能性があることがわかりました。どのテーブルが他のどのテーブルに結合しているかを知りたいです。「p」が何を意味するのかを理解するために、5-10 テーブル結合を検索する必要はありません。製品テーブル、人などですか?

個人的には、少しダブルクリック、ctrl+c、ctrl+v を使うのは難しくありません。完全なテーブル名を使用してください (もちろん、同じテーブルに 2 回参加する必要がある場合もあります。その場合、より奇妙なクエリでエイリアスを使用する必要があります)。私のスタイル

VS

個人的な好みですか?このクエリがより大きな結合であり、大きな選択ステートメントがあったかどうかを検討してください。

ほとんどの人は時間を節約するためにエイリアスを使用していると思いますが、エイリアスの方が読みやすいと思いますか? 古いSQLにアクセスして、結合がどのように機能するかをすぐに理解できますか?

更新:具体的には、名前を1文字に短縮すると、SQLステートメントが読めなくなる可能性があると主張しようとしています。テーブルを ShoeStackerCrazyProducts から ShowProducts に変更することは理にかなっていると思います。一方、それを sscp にショートすると、読み取り不能になります。考え?

0 投票する
2 に答える
900 参照

php - JOINクエリの結果で同じ名前の異なるテーブルのフィールドを識別する方法は?

ユーザーとそのユーザー グループを取得するために、LEFT JOIN を使用して MYSQL でクエリを実行しています。両方のテーブルには、id という名前の列があります。結果は配列 (PHP) で返されるため、すべてのフィールド データを含む配列が 1 つだけでなく、配列 ["id"] も 1 つだけになります。

これまでの私のクエリは次のとおりです。

SELECT usr.id, usg.id FROM users usr LEFT JOIN (user_groups usg) ON (usg.id=usr.group_id)

簡単な解決策は、フィールドの名前を usr_id や usg_id などの一意の名前に変更することですが、私はそうしないことを好みます。私の値は、array["usr.id"] として自動的に配列に返されます。

(私は残りを自動的に行う CodeIgniter フレームワークを使用していますが、MySQL だけがそれでテーブル エイリアスを返すことができれば、そこにいくつかのものを書き直すことができます)