使用联接优化 SQL 查询

健身房代码

我使用了 2 个变量,SELECT每个变量都有一个语句。

有人告诉我,我可以通过使用JOIN只执行一次查询来优化我的查询

我设法将声明合二为一。但是它没有使用JOIN,并且SELECT在我当前的查询中还有 2 个语句。

当前查询:

BEGIN

DECLARE @EntityId int, @Country nvarchar(10), @OrganizationId int, 
@Username nvarchar(100) = 'user1'

Set @OrganizationId = (SELECT BU.OrganizationId 
FROM [Company].[Config].[BusinessUnit] BU 
WHERE BU.EntityId = (SELECT BU.EntityId
FROM [Company].[PES].[EmployeeProfile] EP
LEFT JOIN   Config.BusinessUnit bu on EP.EntityCode = BU.EntityCode
WHERE EP.Username = @Username))

IF(@OrganizationId = 3)
    SET @Country = 'MS'
ELSE
    SET @Country = 'SG'
SELECT @Country

END

我当前的查询是否可以进行,还是可以进一步改进?谢谢你。


上一个查询:

BEGIN

DECLARE @EntityId int, @Country nvarchar(10), @OrganizationId int, 
@Username nvarchar(100) = 'user1'

Set @EntityId = (SELECT BU.EntityId
FROM [Company].[PES].[EmployeeProfile] EP
LEFT JOIN   Config.BusinessUnit bu on EP.EntityCode = BU.EntityCode
WHERE EP.Username = @Username)

Set @OrganizationId = (SELECT BU.OrganizationId 
FROM [Company].[PES].[BusinessUnit] BU 
WHERE @EntityId = BU.EntityId)

IF(@OrganizationId = 3)
    SET @Country = 'MS'
ELSE
    SET @Country = 'SG'
SELECT @Country

END
戈登·利诺夫

为什么不将其合并为一个查询?

SELECT @Country = (CASE WHEN @OrganizationId = 3 THEN 'MS'
                        ELSE 'SG'
                   END)
FROM [Company].[PES].[EmployeeProfile] EP JOIN
     Config.BusinessUnit cbu 
     ON EP.EntityCode = cbu.EntityCode JOIN
     [Company].[PES].[BusinessUnit] BU 
     ON cbu.EntityId = bu.EntityId
WHERE EP.Username = @Username)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL查询优化-添加联接等

来自分类Dev

如何使用多个左联接优化SQL查询

来自分类Dev

使用多个联接和分组优化SQL查询(Postgres 9.3)

来自分类Dev

使用左联接在多个表上优化SQL查询

来自分类Dev

Sql Not IN查询使用联接

来自分类Dev

优化SQL分组依据和联接查询

来自分类Dev

优化包含左联接的SQL查询

来自分类Dev

通过多个联接优化SQL查询

来自分类Dev

优化SQL分组依据和联接查询

来自分类Dev

优化包含左联接的SQL查询

来自分类Dev

使用LAG / LEAD分析功能优化自联接Oracle SQL查询?

来自分类Dev

使用自联接的SQL查询

来自分类Dev

使用联接的高级SQL查询

来自分类Dev

使用联接对Linq的SQL查询

来自分类Dev

SQL查询使用(自己?)联接

来自分类Dev

使用联接的SQL查询更新

来自分类Dev

使用联接的高级SQL查询

来自分类Dev

具有内部联接优化的SQL更新查询

来自分类Dev

SQL Server查询优化器执行不必要的联接

来自分类Dev

具有3个联接的SQL查询优化

来自分类Dev

如何优化多个左联接SQL SELECT查询?

来自分类Dev

SQL Server查询优化:自我内部联接过多

来自分类Dev

如何使用条件联接优化查询?

来自分类Dev

如何使用表联接优化此查询?

来自分类Dev

使用左联接优化MySql查询

来自分类Dev

如何使用自联接优化此查询?

来自分类Dev

正确的联接查询的SQL查询

来自分类Dev

SQL查询优化删除查询

来自分类Dev

sql中子查询的优化查询