mysql-子查询以及使用相关子查询在外部进行引用的可能性
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-子查询以及使用相关子查询在外部进行引用的可能性,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1294字,纯文字阅读大概需要2分钟。
内容图文
![mysql-子查询以及使用相关子查询在外部进行引用的可能性](/upload/InfoBanner/zyjiaocheng/885/09af36175e83472394e525b2a8a5a00b.jpg)
我正在刷新我的SQL.
我正在阅读有关子查询的信息,以及在相关子查询之外进行引用的可能性.
例:
SELECT *
FROM ORDERS O
WHERE 'ROAD BIKE' =
(SELECT DESCRIPTION FROM PART P WHERE P.PARTNUM = O.PARTNUM)
这与联接等效:
SELECT O.ORDEREDON, O.NAME,
O.PARTNUM, O.QUANTITY, O.REMARKS
FROM ORDERS O, PART P
WHERE P.PARTNUM = O.PARTNUM AND P.DESCRIPTION = 'ROAD BIKE'
我的问题是我没有得到第一个表格,以及何时/为什么使用它.外部引用的查询什么时候有用?
解决方法:
订单具有零件编号的引用,因此“订单”表具有零件编号的外键.
我们需要零件号为“ Road Bike”的所有订单.
第一种形式首先对每个记录进行子查询,以检查O.PARTNUM是否为“ Road Bike”的零件号.
想到的方法是,主要查询是遍历Orders表中的每个记录.在每个记录上,它都会执行一个子查询,在查询中使用它的PARTNUM字段.因此,如果在子查询中使用了订单记录的PARTNUM,请选择在具有该PARTNUM的PART表中查找记录,然后选择DESCRIPTION字段.然后,主查询的where子句检查“ Road Bike”是否等于从子查询返回的DESCRIPTION.
我建议不要使用第一种形式,因为它是一个相关查询,出于性能原因,应避免使用相关查询,因此请使用第二种形式.第一种形式的更好版本是:
SELECT *
FROM ORDERS O
WHERE O.PARTNUM =
(SELECT P.PARTNUM FROM PART P WHERE DESCRIPTION = 'ROAD BIKE')
这不是相关查询.数据库可以执行一次子查询,以“ ROAD BIKE”作为描述获取记录的PARTNUM,然后在条件WHERE O.PARTNUM等于子查询结果的情况下运行主查询.
内容总结
以上是互联网集市为您收集整理的mysql-子查询以及使用相关子查询在外部进行引用的可能性全部内容,希望文章能够帮你解决mysql-子查询以及使用相关子查询在外部进行引用的可能性所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。