以下は私が見つけたSQLステートメントです:
SELECT d.name, count(e.emp_id) num_employees
FROM department d INNER JOIN employee e
ON d.dept_id = e.dept_id
GROUP BY d.name
HAVING count(e.emp_id) > 2;
何を知りたかったd.name
、e.name
またはd.dept_id
平均。違いはなんですか?
ドット.
は通常テーブル名です。あなたが言及した文では、d
はエイリアス名の名前です。 FROM
ステートメントを確認すると、department d
。つまり、テーブルdepartment
から行をフェッチしたいが、それをd
として参照したい(department
は長いWordであるため)ので、エイリアスを作成します。
フィールドを明確にするために、異なるテーブルが同じフィールド名を持っている可能性があるため、フィールドの前にテーブル名(またはあなたの場合はエイリアス)の後にドットを付けることができます。
つまり、あなたが言っているのは:
エイリアス
name
からフィールドd
を選択し、テーブルdepartment
とemployee
、エイリアスd
の結合から従業員数をカウントします。それぞれe
など。
から Dev.MySQL.com
:
デフォルトデータベース内のテーブルを
tbl_name
またはdb_name.tbl_name
として参照して、データベースを明示的に指定できます。
列はcol_name
、tbl_name.col_name
、またはdb_name.tbl_name.col_name
として参照できます。 参照があいまいでない限り、列参照にtbl_name
またはdb_name.tbl_name
プレフィックスを指定する必要はありません。 -)。
MySQLは、単一の識別子または複数の識別子で構成される名前を許可します。複数パーツ名のコンポーネントは、ピリオド(“
.
”)文字で区切る必要があります。複数部分の名前の最初の部分は、最終的な識別子が解釈されるコンテキストに影響を与える修飾子として機能します。
テーブル参照は、tbl_name AS alias_name
またはtbl_name alias_name
を使用してエイリアスできます。
SELECT t1.name, t2.salary FROM employee AS t1, info AS t2
WHERE t1.name = t2.name;
SELECT t1.name, t2.salary FROM employee t1, info t2
WHERE t1.name = t2.name;