700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > mysql 多表并列查询_MySQL-18(多表查询INNER/LEFT/RIGHT JOIN)

mysql 多表并列查询_MySQL-18(多表查询INNER/LEFT/RIGHT JOIN)

时间:2020-08-10 15:48:54

相关推荐

mysql 多表并列查询_MySQL-18(多表查询INNER/LEFT/RIGHT  JOIN)

# 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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。