连表查询/子查询适用情况配合where


上菜鸟https://www.runoob.com/sql/sql-join.html看对连表和子查询的介绍还是蛮详细的

区别

连表查:又分为 左外连接,右外连接,内连接,外连接 是拼凑成大表
where 之查出有数据的
左右外连接 sql中主表对应的从表为空的数据也会查出
子查询:子查询只能返回一条数据,不然会被报错,以某表为主表
为空/有数据 都会查出 一对一 走从表

相同点

都是走主从表关系 主从表 一对多
语句中以从表为主表,查出从表引用主表字段的主表数据(从表中的外键可为空-》有从表数据不一定有主表数据)

适用情况

考虑代码量
连表查询的效率更高

参考推荐

https://blog.csdn.net/u011277123/article/details/54863371
有挺多 SQL例子的不错

下面展示一些 例子代码片
可以配合where

SELECT U.*,
       C.ID DEPT_ID,
       C.NAME DEPT_NAME,
       (SELECT D.NAME FROM T_DEPT D WHERE UD.COMP_ID = D.ID) ON_CPANY
  FROM T_USER U
  left join T_USER_DEPT UD
    on U.ID = UD.USER_ID      
   and UD.IS_MAIN = 'Y'
  left join T_DEPT C
    on UD.DEPT_ID = C.ID
SELECT S.*,
       U2.NAME, 
       S.MODIFIER,
       U.NAME                  MODIFIER1,
       S.GATE_CLIENT_ID,
       WA.WORK_AREA_NAME,
       B.DEP_NAME_CN           COMP_NAME,
       C.CLIENT_NAME
  FROM T_GATE_INFO S
  LEFT JOIN T_AREA WA
    ON S.WORK_AREA_ID = WA.WORK_AREA_ID
  LEFT JOIN T_COMNY B
    ON WA.OWN_COMNY = B.DEP_ID
  LEFT JOIN T_GATEWAY_CLIENT C
    ON S.GATE_ID = C.CLIENT_ID
  LEFT JOIN T_USR U
    ON S.MODIER = U.UR_ID
  LEFT JOIN TSER U2
    ON S.CREATOR = U2.USER_ID
 WHERE
 S.GAT_ID = '123'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值