首页 > 开发 > 综合 > 正文

SQL语句值left join,right join,inner join的用法

2024-07-21 02:52:17
字体:
来源:转载
供稿:网友

sql语句中两表连结方式主要有一下3中,需要注意的时在进行多表连结的时候必须要用 on 指定表中的某个字段作为连结的条件

left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 -----结果集的条目数以左表为准right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录------结果集的条目数以右表为准inner join(等值连接) 只返回两个表中联结字段相等的行------结果集的条目数为联结字段相等的行数

看一下例子

Table_1

1             t1            张三            男         2             t1            小白            女         3             t1            王子            男         4             t1            王小            女         5             t1            李白            男         6             t1            赵虎            男         7             t1            张果            女        

-----------------------------------------------------------------------------------------

Table_2

1             t2            王五        2             t2            小五        4             t2            王五        5             t2            赵雪        8             t2            张龙          

------------------------------------------------------------------------------------------

left join

select * from Table_1 left join Table_2 on Table_1.ID = Table_2.ID

结果是:

1             t1            张三            男             1             t2            王五        2             t1            小白            女             2             t2            小五        3             t1            王子            男             NULL    NULL    NULL4             t1            王小            女             4             t2            王五        5             t1            李白            男             5             t2            赵雪        6             t1            赵虎            男             NULL    NULL    NULL7             t1            张果            女             NULL    NULL    NULL

--------------------------------------------------------------------------------------------

right join

SELECT * FROM Table_1 right join Table_2 on Table_1.ID = Table_2.ID

结果是:

1             t1            张三            男             1             t2            王五        2             t1            小白            女             2             t2            小五        4             t1            王小            女             4             t2            王五        5             t1            李白            男             5             t2            赵雪        NULL      NULL      NULL         NULL         8             t2            张龙       

--------------------------------------------------------------------------------------------

inner join

select * from Table_1 inner join Table_2 on Table_1.ID=Table_2.ID

结果是:

1             t1            张三            男             1             t2            王五        2             t1            小白            女             2             t2            小五        4             t1            王小            女             4             t2            王五        5             t1            李白            男             5             t2            赵雪       

----------------------------------------------------------------------------------------------

 总结:left join与right join 的区别主要是在于基础表是左表还是右表,对于不满足基础表联结字段的行将会有null填充   

 语法:from Table_1 LEFT JOIN Table_2 ON Table_1.columnName compoPR Table_2.columnNamecolumnName必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的名称。compopr指定的运算符有:"=", "<", ">", "<=", ">=" 或 "<>"

----------------------------------------------------------------------------------------------

这次先分享到这里,有不完整之处还请广大网友进行补充,过段时间再分享多表联结查询不重复的数据


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表