テーブル 1 には m 行のデータがあり、テーブル 2 には n 行のデータがあり、クエリ結果には m*n 行があります。データの。
sql92 標準: 内部結合のみをサポート
sql99 標準 (推奨): 内部結合をサポート、外部結合(左外部結合、右外部結合)、クロス結合
内部結合:等価結合、非等価結合、自己結合
外部結合: 左外部結合、右外部結合、完全外部結合
クロス結合
(1) 女の子の名前とそれに対応する名前をクエリします。彼氏の名前
SELECT girlname, boyname FROM boys, girls WHERE girls.boyfriend_id=boys.girlfriend_id;
(2) 従業員名 (last_name) と対応する部門名 (Department_name) をクエリします------------- (関連付けられた ID に基づいてクエリします)
SELECT last_name, department_name FROM JDSC, SNSC WHERE JDSC.`id`=SNSC.`id`;
(3) 従業員名(last_name)、職種番号(job_id)、職種名(job_title)を問い合わせます(従業員テーブル:JDSC作業テーブル:JOBSC) ------ テーブルのエイリアスを作成します。曖昧さを避けるため、簡素性を向上させます
#"e.job_id"是为了避免歧义 SELECT last_name, e.job_id, job_title FROM ESC e, JOBSC j WHERE e.`job_id`=j.`job_id`;
注:
テーブルに別名が指定されている場合、クエリされたフィールドを元のテーブル名で修飾することはできません。
上記 2 つのテーブルの順序は入れ替えることができます
(4) ボーナスのある従業員名と部門名をクエリする
#员工名:last_name #部门名:department_name #奖金率:commissiom_pct SELECT last_name, department_name, commissiom_pct FROM employees e, department d WHERE e.`department_id`=d.`department_id` AND e.`commissiom_pct` IS NOT NULL;
(5) グループクエリ-mdash;Query各都市の部署数
#城市分组表名:city #部门分组表名:departments SELECT COUNT(*) 个数, city FROM departments d, locations l WHERE d.`location_id`=l.`location_id` GROUP BY city;
(6) 並べ替え - 職種ごとに職種名と従業員数を問い合わせ、従業員数の多い順に並べ替えます
SELECT job_title, COUNT(*) FROM emloyees e, jobs j WHERE e.`job_id`=j.`job_id` GROUP BY job_title ORDER BY COUNT(*) DESC;
(7) 3 つのテーブル接続 - 従業員名、部門名、市区町村のクエリ
SELECT last_name, department_name, city FROM employees e, departments d, locations l WHERE e.`department_id`=d.`department_id` AND d.`location_id`=l.`location_id` AND city LIKE 's%';
以上がMySQL での接続クエリの例の分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。