以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  这两个sql语句的效率哪个高?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=133739)

--  作者:happyft
--  发布时间:2019/4/19 12:03:00
--  这两个sql语句的效率哪个高?
SELECT  a.* ,(SELECT TOP 1 品名 FROM  产品编码 x WHERE a.产品编码 = x.产品编码) AS 品名 ,(SELECT TOP 1 规格 FROM  产品编码 x WHERE a.产品编码 = x.产品编码) AS 规格 FROM 采购单价 a

 SELECT  a.* ,x.品名,x.规格 FROM 采购单价 a LEFT JOIN 产品编码 x  ON a.产品编码 = x.产品编码

第一个用top 1 但这样引用两列以上时每一列都要单独用select top 1写,不能一次写,语句变得很长,而且多次select top1会不会影响效率?

产品编码表中没有重复的产品编码,都是唯一的,这样是不是下面那种效率更高?

谢谢!

--  作者:有点甜
--  发布时间:2019/4/19 12:17:00
--  

 

连接查询 join 的效率更高。

 

比较效率,你可以在sqlserver工具那里测试,如 https://www.cnblogs.com/knowledgesea/p/3683505.html

 

或者 https://www.cnblogs.com/lyhabc/p/3187922.html