プライベートな連絡先の最初の情報
送料メール:
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
リンクを使用して複数のテーブルを一時テーブルに結合します
テーブル名 1 内部結合テーブル名 2 からヘッダー名を選択します。
従業員から*を選択、部門を内部結合
リンク条件でテーブル名 1 内部結合テーブル名 2 からヘッダー名を選択します。
従業員から*を選択し、従業員の部門を内部結合します。部門は、従業員の部門ID = 部門ID.dept_id になります。
一時的な新規テーブルでは以下のような処理が可能です
リンク条件でテーブル名 1 の内部結合テーブル名 2 からヘッダ名を選択します。
従業員から*を選択し、従業員の部門を内部結合します。部門は、従業員の部門ID = 部門ID.dept_id になります。
別名を定義した後、その別名を使用してテーブル名を表す必要があります。
2018 年の各従業員の給与総額をクエリする
select name ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by name; select salary.employee_id ,sum(basic+bonus) as total from employees inner join salary on employees.employee_id = salary.employee_id where year(date)=2018 group by employee_id having total > 300000 order by total desc ,employee_id asc;查询2018年总工资大于30万的员工,按2018年总工资降序排列
employee_id、basic、garde を salary から選択し、wage_grade を salary.basic で inner join し、wage_grade.low と wage_grade.high の間で、year(date)=2018、month(date)=12 にします。
2018 年 12 月の従業員の基本給をクエリする
garde をレベルとして選択し、count(employee_id) を給与内部結合の合計人数として pay_grade.low と raise_grade.high の間の給与.basic から選択します。ここで、年 (日付) = 2018 および月 (日付) = 12 でグループ化されます。 2018年12月の基本給レベルの従業員数
従業員から名前、基本、ガードを選択し、従業員の給与を従業員 ID = 給与 ID で内部結合し、賃金グレードを給与.基本に内部結合し、賃金グレード.low と賃金グレード.high の間で、年 (日付) = 2018、月 (日付) = 12 にします。
外部リンクは 2 つのテーブルの違いを比較します
左側のリンクは、左側のテーブルのデータと右側のテーブルのデータを使用して比較します。出力結果には、左側のテーブル ヘッダーのすべてのデータが表示されます。
リンクに一致する行のみが右側に表示されます
リンク条件でテーブル名 1 からヘッダ名を選択し、テーブル名 2 を左にします。
部門の左側から dept_name、name を選択し、departments.dept_id=employees.dept_id で employees を結合します (name が null の場合)。
右側のリンクは、右側のテーブルのデータと左側のテーブルのデータを使用して比較し、出力結果の右側のテーブルのヘッダーにあるデータがすべて表示されます。
リンクに一致する行のみが右側に表示されます
mysql> select dept_name,name from departments as d right join employees as e on d.dept_id=e.dept_id where dept_name is null;
従業員を更新し、dept_id=11 を設定します。name="bob" です。
複数の選択コマンドによってクエリされる行をまとめます。複数の選択クエリの場合、テーブル ヘッダーの数は一貫している必要があります。
重複行の出力が削除されました
mysql> (select date , max(basic) as 工资 from salary where date=20180110)union(select date,min(basic) from salary where date=20180110);
(クエリコマンドの選択) Union (クエリコマンドの選択);
重複排除なしで出力する
select クエリ コマンド) Union all (select クエリ コマンド);
select query コマンドには select query コマンドが含まれています
where の後にネストされたクエリのグループ化
select header name from library.table where ヘッダ名判定記号(selectクエリコマンド)
year(date)=2018 かつ month(date)=12 かつ employee_id=100 の場合、salary から employee_id、date、basic、bonus を選択します > (year(date)=2018 かつ month(date)=12 かつ employee_id=100 の場合、salary から basic を選択します);
クエリをネストした後、() 内のクエリ結果をフィルター条件として使用します。
ヘッダ名判定シンボルを持つlibrary.tableからヘッダ名を選択(セレクトクエリコマンド)
dept_id を選択し、count(name) を employees から合計として、dept_id でグループ化します。
合計<(
dept_id=( の従業員から count(name) を選択します。
dept_name='開発部門') の部門から dept_id を選択
from の後にクエリをネストし、() のクエリ結果をテーブルとして使用します
フィルター条件の一時テーブル名としてヘッダー名を選択 (クエリ結果を選択);
employee_id、name、email、dept_name を (select d.dept_name,e.* from departments as d inner join employees as e on d.dept_id=e.dept_id) as tmp_table where dept_id=3 から選択します。
選択後のネストされたクエリ
ヘッダー名を選択し、(クエリコマンドを選択して) library.table からヘッダー名としてフィルター条件を選択します。
d.* 、(select count(name)from employees as e where d.dept_id=e.dept_id)as vumen from departments as d; を選択します。