SQL中Left Join 与Right Join 与 Inner Join 与 Full Join的区别

6 篇文章 0 订阅

首先在 SQLyog企业版 MySQL GUI 中测试一下SQL语句的执行。

EMP表:这里写图片描述

SAL表:这里写图片描述

左连接
select * from EMP e left join SAL s on e.name=s.name;

这里写图片描述
左连接,表EMP是主表,因此查询结果是显示EMP(主表)的全部信息和SAL(附表)与EMP相关的信息。

右连接
select * from EMP e right join SAL s on e.name=s.name;
这里写图片描述
右连接,表SAL是主表,因此查询结果显示SALT(主表)的全部信息和EMP(附表)与SAL想关的信息。

内连接
select * from EMP e inner join SAL s on e.name=s.name;
这里写图片描述
内连接,显示的是连个表相关的信息。

全连接
select * from EMP e full join SAL s on e.name=s.name;
这里写图片描述
全连接,显示两个表所有的信息。

nativeSql.tld
需要复杂的查询时使用 sql,普通简单的查询使用hql
<nativeSql:sqlQueryForList  id="wares" sql="SELECT w.f_id,w.f_name,SUM(wd.f_quantity) as s
FROM t_warehouseiodetail wd LEFT JOIN t_warehouse w ON w.f_id = wd.f_warehouse_id  
WHERE f_product_id = ${product.id } 
GROUP BY w.f_id,w.f_name "/>
<!--<hql:queryForList hql="select warehouse,sum(quantity) as s from WarehouseIODetail where product.id = ${product.id } group by warehouse " id="wares" />--> 

<table cellspacing="0" cellpadding="2" border="0" id="searchResultTable"   class="table table-striped table-bordered table-hover">
        <thead>
    <tr>
        <th>仓库</th>
        <th>数量</th>
    </tr>
</thead>
<tbody>
    <c:forEach items="${wares }" var="w">
    <tr>
        <td>${w.f_name }</td>
        <td>${w.s }</td>

    </tr>   
    </c:forEach>
</tbody>
</table>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值