12.基础-使用子查询

什么是子查询

       嵌套在其他查询当中的查询;

利用子查询进行过滤

       输入:SELECT cust_id
                 FROM orders
                 WHERE order_num IN (SELECT order_num
                                                       FROM orderitems
                                                       WHERE prod_id='TNT2')
;

       分析:在SELECT语句中,子查询总是从内向外处理。MySQL处理上述SELECT语句时,执行了两步操作。

       第一步:SELECT order_num
                    FROM orderitems

                    WHERE prod_id='TNT2';

       此查询返回两个订单号:20005和20007,然后,这两个值以IN操作符要求的逗号分隔的格式传递给外部查询的WHERE子句;

       第二步:SELECT cust_id
                    FROM orders

                    WHERE order_num IN (20005,20007);

----------------------------------------------------------------

       还可以嵌套多个子查询;对于能嵌套的子查询的数目没有限制,不过在实际使用时由于性能的限制,不能嵌套太多的子查询。


列必须匹配: 在WHERE子句中使用子查询,应该保证SELECT语句具有与WHERE子句中相同数目的列。通常,子查询将返回单个列并且与单个列匹配,但如果需要也可以使用多个列。

作为计算字段使用子查询


分析:orders是一个计算字段,它是由圆括号中的子查询建立的。该子查询对检索出的每个客户执行一次。

相关子查询:涉及外部查询的子查询;任何时候只要列名可能有多义性,就必须使用这种语法(表名和列名由一个句点分隔)。

--查询备份工时表sql select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0257-11' and dl.ncfile_name = 'E021-3298808-T-4T007.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0257-11' and dl.ncfile_name = 'E021-3298808-T-4T008.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0257-11' and dl.ncfile_name = 'E021-3298808-T-4T009.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T005.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T004.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T002.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T003.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T007.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T009.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T006.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T008.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T010.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251216G-0007-11' and dl.ncfile_name = 'G021-849364-T-6E002.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251218-0029-11' and dl.ncfile_name = 'E021-3299260-T-6B006.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251218-0029-11' and dl.ncfile_name = 'E021-3299260-T-6B008.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251218-0029-11' and dl.ncfile_name = 'E021-3299260-T-6B007.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251218-0055-11' and dl.ncfile_name = 'E021-3299260-T-5T002.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251218-0055-11' and dl.ncfile_name = 'E021-3299260-T-5T003.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251218-0055-11' and dl.ncfile_name = 'E021-3299260-T-5T001.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251223-0026-11' and dl.ncfile_name = 'G021-849520-T-6B001.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251223-0045-11' and dl.ncfile_name = 'E021-3300961-T-6B003.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251223-0045-11' and dl.ncfile_name = 'E021-3300961-T-6B005.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251223-0045-11' and dl.ncfile_name = 'E021-3300961-T-6B004.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251223-0457-11' and dl.ncfile_name = 'E021-3303199-T-6B007.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251223-0457-11' and dl.ncfile_name = 'E021-3303199-T-6B006.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251225-0946-11' and dl.ncfile_name = 'E021-3301156-T-12X003.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251225-0946-11' and dl.ncfile_name = 'E021-3301156-T-12X002.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251225-0946-11' and dl.ncfile_name = 'E021-3301156-T-12X004.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251226-0114-11' and dl.ncfile_name = 'E021-3303214-T-4T005.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251226-0114-11' and dl.ncfile_name = 'E021-3303214-T-4T006.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251226-0114-11' and dl.ncfile_name = 'E021-3303214-T-4T007.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B003.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B004.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B005.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B006.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B007.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B008.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B009.NC-11' union select * from mes.cnc_ncfile_dlrec dl where dl.lot_no = 'U20251229G-0004-11' and dl.ncfile_name = 'G021-852164-T-4B010.NC-11' -- 修改工时表sql update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 4.63,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0257-11' and dl.ncfile_name = 'E021-3298808-T-4T007.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 4.63,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0257-11' and dl.ncfile_name = 'E021-3298808-T-4T008.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 4.55,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0257-11' and dl.ncfile_name = 'E021-3298808-T-4T009.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.82,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T005.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.82,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T004.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.82,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T002.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.28,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T003.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.82,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T007.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.82,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T009.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.82,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T006.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.28,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T008.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.82,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251209-0420-11' and dl.ncfile_name = 'E021-3298701-T-6T010.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 6.89,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251218-0029-11' and dl.ncfile_name = 'E021-3299260-T-6B006.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 6.89,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251218-0029-11' and dl.ncfile_name = 'E021-3299260-T-6B008.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 6.89,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251218-0029-11' and dl.ncfile_name = 'E021-3299260-T-6B007.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 6.96,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251218-0055-11' and dl.ncfile_name = 'E021-3299260-T-5T002.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 6.96,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251218-0055-11' and dl.ncfile_name = 'E021-3299260-T-5T003.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 6.96,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251218-0055-11' and dl.ncfile_name = 'E021-3299260-T-5T001.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.51,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251223-0026-11' and dl.ncfile_name = 'G021-849520-T-6B001.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.59,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251223-0045-11' and dl.ncfile_name = 'E021-3300961-T-6B003.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.59,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251223-0045-11' and dl.ncfile_name = 'E021-3300961-T-6B005.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.59,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251223-0045-11' and dl.ncfile_name = 'E021-3300961-T-6B004.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 13,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251223-0457-11' and dl.ncfile_name = 'E021-3303199-T-6B006.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.44,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251225-0946-11' and dl.ncfile_name = 'E021-3301156-T-12X003.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.44,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251225-0946-11' and dl.ncfile_name = 'E021-3301156-T-12X002.NC-11'; update mes.cnc_ncfile_dlrec dl set dl.original_minutes = 5.44,dl.update_by = '正面精通孔含拆分工时多给重算' where dl.lot_no = 'U20251225-0946-11' and dl.ncfile_name = 'E021-3301156-T-12X004.NC-11'; 帮我把这个先查询再更新的方式改成用存储过程写
最新发布
01-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值