需求是在“雇员通信录”表里插入订单数超过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语句?
子查询写法:
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语句?