sql查询两表某字段⼀样的数据_MySQL数据库的多表查询操作
常⽤SQL命令
本节主要针对MySQL数据库的多表查询操作常⽤SQL命令进⾏总结,主要包括内连接(INNER JOIN),左外部连接(LEFT JOIN),右外部连
接(RIGHT JOIN),全连接(FULL JOIN),交叉连接(CROSS JOIN),⾃然连接(NATURAL JOIN),⾃连接(SELF JOIN),联合查询
(UNION)。
scratchlessonSQL JOIN
1.内连接-INNER JOIN
INNER JOIN 主要是获取两个或多张表的交集,只返回匹配的⾏;多张表之间没有主表附表之分。
//INNER JOIN = JOIN//规则1SELECT column_list FROM table1 t1 INNER JOIN table2 t2 lumn_lumn_name;SELECT * FROM table1 t1 INNER
SQL JOIN - INNER JOIN
2.左外部连接-LEFT JOIN
propertymanagement什么意思LEFT JOIN 以左表为主表,右表为附表;返回左表的全部⾏和右表满⾜ON条件的⾏;
如果左表的⾏在右表中没有匹配,那么这⼀⾏右表中对应数据⽤NULL代替;
可以是⼀主⼀附(⼀个左表,⼀个右表),也可以是⼀主多附(⼀个左表,多个右表)
//LEFT JOIN = LEFT OUTER JOIN//规则1SELECT column_list FROM table1 t1 LEFT JOIN table2 t2 lumn_lumn_name;SELECT * FROM tab
SQL JOIN - LEFT JOIN
3.右外部连接-RIGHT JOIN
RIGHT JOIN 以右表为主表,右表为附表;返回右表的全部⾏和左表满⾜ON条件的⾏;
如果右表的⾏在左表中没有匹配,那么这⼀⾏左表中对应数据⽤NULL代替;
//RIGHT JOIN = RIGHT OUTER JOIN//规则1SELECT column_list FROM table1 t1 RIGHT JOIN table2 t2 lumn_lumn_name;SELECT * FROM
SQL JOIN - RIGHT JOIN
4.全连接-FULL JOIN
FULL JOIN 会从左表和右表返回符合条件的所有⾏;
只要左表(table1)和右表(table2)其中⼀个表中存在匹配,就返回结果;
如果其中⼀个表的数据⾏在另⼀个表中没有匹配的⾏,那么对⾯的数据⽤NULL代替;
FULL JOIN 结合了 LEFT JOIN 和 RIGHT JOIN 的结果;mysql语句多表查询
SQLServer 和Oracle⽀持FULL JOIN;
MySQL不⽀持FULL JOIN,可以使⽤LEFT JOIN + UNION + RIGHT JOIN来达到效果
//FULL JOIN = FULL OUTER JOIN//规则1SELECT column_list FROM table1 t1 FULL JOIN table2 t2 lumn_lumn_name;SELECT * FROM tab
SQL JOIN - FULL JOIN
数组逆序输出c++5.交叉连接-CROSS JOIN
FULL JOIN 返回左表中的所有⾏,左表中的每⼀⾏与右表中的所有⾏组合;
交叉联接也称作笛卡尔积;
如果table1有5⾏记录,table2有6⾏记录,交叉连接结果为5*6=30条记录;
//规则1 table1和table2两表的笛卡尔积 = 两个表⾏数的乘积SELECT * FROM table1 CROSS JOIN table2;//规则2 ⾸先⽣成两表的笛卡尔积,再根据ON条件来过滤S
SQL JOIN - CROSS JOIN
6.⾃然连接-NATURAL JOIN
NATURAL JOIN 等同于INNER JOIN或INNER USING 匹配两个表中相同名称的列;
具有相同名称的关联表的列将仅出现⼀次;
关联的表具有⼀对或多对相同名称的列;这些列必须是相同的数据类型;
不要在⾃然连接中使⽤ON⼦句;
//规则SELECT * FROM table1 NATURAL JOIN table2;//案例SELECT * FROM table1 NATURAL JOIN table2;
7.⾃连接-SELF JOIN
SELF JOIN 是表与⾃⾝联接(⼀元关系)的连接,特别是当表具有引⽤其⾃⾝主键的外键时;互站网站源码通过漏洞
连接表本⾝意味着表的每⼀⾏都与⾃⾝以及表的其他每⼀⾏结合在⼀起;
⾃连接可以看作是同⼀表的两个副本的连接;
电脑结束运行快捷键是什么//规则SELECT * FROM table t1, table t2 lumn_lumn_name;SELECT * FROM table t1 INNER JOIN table t2 lumn_lum
8.联合查询-UNION
UNION 操作符⽤于合并两个或多个 SELECT 语句的结果集;
UNION 内部的每个 SELECT 语句必须拥有相同数量的列,相似的数据类型,相同的列顺序;
//规则1 UNION 操作符默认地选取不同的值SELECT column_list FROM table1 UNION SELECT column_list FROM table2;//规则2 UNION ALL允许选取重复的值SEL
⾄此MySQL数据库的多表查询操作常⽤SQL命令总结完毕,编程就这么简单,⼩伙伴们不妨试试,总结不易,希望⼤家多点赞收藏转发,
在此谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论