2011-07-19 9 views
1

私はMySQLの専門家ではありませんが、SELECTの文章を読んだ後、私の問題に対する答えは見つかりませんでした。MySQLのネストされたSELECT文の解釈

私はこの文を持っている:

SELECT COUNT(*)=x.c FROM someTable, 
    (SELECT COUNT(*) c 
    FROM someTable 
    WHERE firstId <= secondId) x; 

そして私は、クエリのコンテキストで何をx.c手段を把握しようとしていますか?具体的には、xには何が出ているようですか?

私は、cとして行数のエイリアスを作り、SELECT COUNT(*) as cとしてネストされたSELECTを解釈するには、どのようなxが同様であるということですか?エイリアスとは何でしょうか?

ありがとうございます!

答えて

2

xはテーブルエイリアスで、ネストされたSELECTステートメントの名前はカッコで囲まれています。

COUNT(*)=x.c 

someTableの総行数がfirstId <= secondId

x.cがサブクエリによって返されるカウントの列名であるsomeTableの行数に等しいことがブール条件です。

+0

本当に有益な説明をありがとう! :) – birryree

2

サブクエリの名前を「x」とし、サブクエリの名前をcount(*)「c」とします。したがって、 "x.c"はサブクエリによって返されたカウントを意味します。

+0

説明ありがとうございました:) – birryree

2

xはサブクエリのエイリアスです。サブクエリの直後にはxがあり、エイリアス名を示しています。

+0

説明ありがとうございました:) – birryree

0

Xは、結合されたsomeTableの別名であり、someTableを結合した選択です。私はそう思います:D

私は私以上の人が正しい、間違った推測:P

+0

ありがとう、私たちは両方の権利を学んでいる? – birryree

+0

確かなことを仲間:) – Nebril

1

xがテーブル(SELECT COUNT(*) c FROM someTable WHERE firstId <= secondId)の別名です。

+0

助けてくれてありがとう! – birryree

1

MySQLでは、テーブルサブクエリに一意のエイリアスが必要です。サブクエリの末尾にxがあることに気が付くと、サブクエリの結果はテーブルxからのものとして表示されます。

この場合、外部クエリのx.cは、サブクエリであるエイリアステーブルxのフィールドc(カウント結果)を参照することを意味します。

+0

説明をありがとう:) – birryree

関連する問題