使用联接优化 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

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

来自分类Dev

通过多个联接优化SQL查询

来自分类Dev

正确的联接查询的SQL查询

来自分类Dev

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

来自分类Dev

Sql Not IN查询使用联接

来自分类Dev

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

来自分类Dev

优化包含左联接的SQL查询

来自分类Dev

使用联接的高级SQL查询

来自分类Dev

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

来自分类Dev

使用自联接的SQL查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用联接对Linq的SQL查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用联接的SQL查询更新

来自分类Dev

优化包含左联接的SQL查询

来自分类Dev

使用联接的高级SQL查询

来自分类Dev

SQL查询优化删除查询

来自分类Dev

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

来自分类Dev

使用左联接优化MySql查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

SQL查询优化-添加联接等

来自分类Dev

sql中子查询的优化查询