# 1. 多表联合查询
基本用法:查询需要显示的数据来自多张表
/* 两个关联的table查询 */
SELECT * FROM table_name1 ,table_name2;多表联合查询
多表联合实例
在多表查询时,如果多表中有相同字段,则需要指定表名
SELECT table_name1.id from table_name1,table_name2;
# 2. 内连接查询
基本用法:左表中取出一组数据在右表中一一匹配,在左右两张表中均符合某个条件则保留
/* 两个关联的table查询 */
SELECT a.id,a.name ,b.id FROM table_name1 a INNER JOIN table_name2bON a.id = b.id;
a:table_name1 的临时 别名
b:table_name2 的临时 别名
[INNER] JOIN :INNER 可以省略
ON:表示连接条件,左表中的column与右表中对应的column意义相同,当两个表中存在相同意义的字段的时候,就可以通过该字段来连接查询这两个表,当该字段的值相同时就可以查出该记录;ON 后面可以没有连接条件,则查询结果保留
实例:table1 player ;table2 teamteam/player
使用 JOIN ON 来读取 player 的 player_name 字段在 team 中对应的信息
SELECT b.team_id,b.team_name,b.player_name FROM player a JOIN team b ON a.player _name = b.player;JOIN…… ON
# 3. 左连接查询
基本用法:左表当做主表
/* 左连接查询, */
SELECTa.id,a.name ,b.idFROM table_name1 aLEFT JOIN table_name2b ON a.id = b.id;
a:table_name1 的临时 别名
b:table_name2 的临时 别名
LEFT JOIN :左连接
左连接,左表当做主表,无论能否匹配 ON 后面的条件,左表保留,不能匹配的右表字段置NULL
实例:table1 player ;table2 teamLEFT JOIN
假如team 为左表 ,进行查询:
SELECT * FROM team a LEFT JOIN player b ON a.player_name = b.player_name;team left join player
# 4. 右连接查询
基本用法:右表当做主表
/* 右连接查询, */
SELECTa.id,a.name ,b.id FROM table_name1 a RIGHT JOIN table_name2b ON a.id = b.id;
a:table_name1 的临时 别名
b:table_name2 的临时 别名
RIGHT JOIN :右连接
右连接,右表当做主表,无论能否匹配 ON 后面的条件,右表保留,不能匹配的左表字段置NULL
实例:table1 player ;table2 teamRIGHR JOIN
假如 team 为右表 ,进行查询:
SELECT *FROMplayer aRIGHT JOIN team ON a.player_name = b.player_name;
player right join team
# 5. 联合查询
基本用法:将表A和表B的查询数据整体显示出来
/* 联合查询,将多表的查询结果整体显示 */
SELECTa.id,a.name FROM table_name1
UNION [ALL/DISTINCT]
SELECT b.id,b.nameFROMtable_name2;
UNION ALL :不去重复,所有输出
UOINO DISTINCT:(默认)去重复,输出
实例:
SELECT * FROM team UNION ALL SELECT * FROMteam;union all