Mysql两表联合查询的四种情况总结
程序员文章站
2022-12-06 23:49:56
一般来说,我们为了得到更完整的结果,我们需要从两个或更多的表中获取结果,我一般都是用select xxx,xxx from 表1,表2 where 表1.xxx=表2.xx...
一般来说,我们为了得到更完整的结果,我们需要从两个或更多的表中获取结果,我一般都是用select xxx,xxx from 表1,表2 where 表1.xxx=表2.xxx,我们一般都是进行的是这般的操作,其实mysql中还有一种操作,那就是join的操作,例如底下有两个表:
请看 "persons" 表:
接下来请看 "orders" 表:
以上的这两个表,然后我们把它们进行连接查询
select persons.lastname, persons.firstname, orders.orderno from persons, orders where persons.id_p = orders.id_p
结果集:
如果使用关键词join来从两个表中获取数据
select persons.lastname, persons.firstname, orders.orderno from persons inner join orders on persons.id_p = orders.id_p order by persons.lastname
结果集:
则inner join 与上面的普通查询没有区别
不同的 sql join
- join: 如果表中有至少一个匹配,则返回行
- left join: 即使右表中没有匹配,也从左表返回所有的行
- right join: 即使左表中没有匹配,也从右表返回所有的行
- full join: 只要其中一个表中存在匹配,就返回行
left join 关键字语法
"persons" 表:
"orders" 表:
select persons.lastname, persons.firstname, orders.orderno from persons left join orders on persons.id_p=orders.id_p order by persons.lastname
结果集:
sql right join 关键字
"persons" 表:
"orders" 表:
select persons.lastname, persons.firstname, orders.orderno from persons right join orders on persons.id_p=orders.id_p order by persons.lastname
结果集:
sql full join 关键字
"persons" 表:
"orders" 表:
全连接(full join)实例
select persons.lastname, persons.firstname, orders.orderno from persons full join orders on persons.id_p=orders.id_p order by persons.lastname
结果集:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对的支持。如果你想了解更多相关内容请查看下面相关链接