关于简单的SQL子查询改写成联合查询

需求是在“雇员通信录”表里插入订单数超过100的员工信息。

子查询写法:
SELECT 雇员ID,姓氏,名字,邮政编码,城市,地址,家庭电话 FROM 雇员
WHERE 雇员ID IN
(
SELECT 雇员ID FROM 订单
GROUP BY 雇员ID
HAVING COUNT(订单ID) > 100
)

改写成联合查询为:
SELECT
雇员.雇员ID,雇员.姓氏,雇员.名字,雇员.邮政编码,雇员.城市,雇员.地址,雇员.家庭电话
COUNT(订单.订单ID)
FROM 雇员
INNER JOIN 订单
ON 雇员.ID = 订单.雇员ID
GROUP BY 订单.雇员ID HAVING COUNT(订单ID) > 100

提问如下:
1.子查询和联合查询的区别有几点?
2.子查询改写成联合查询后的SQL语句是否错误?
3.在实际的操作过程中,我们如何写健壮的SQL语句?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值