比较相同 table 中同一行的主 ID

Comparing primary Id of the same row in same table

找不到和我一样的问题希望大家能帮帮我。 我对我的 SP 有这个查询,我需要做的是根据用户给定的参数检查公司 ID 是否相同。

我有两个参数,paramOrgA 和 paramOrgB,它们将由用户提供。 我所做的是重复相同的查询并将返回值设置在两个变量中 orgAId 和 orgBId 然后使用 IF 语句比较值。

是否有另一种方法可以做到这一点,或者我应该说优化的方法来做到这一点?

下面是我写的查询。

BEGIN
declare orgAId int;
declare orgBId int;
declare orgStatus bool;

    SET orgAId = (SELECT c.Id
        FROM Members as `m`
        INNER JOIN Company as `c`
        ON m.CompanyId = c.Id
        WHERE m.Id = paramOrgA);
        
    SET orgBId = (SELECT c.Id
        FROM Members as `m`
        INNER JOIN Company as `c`
        ON m.CompanyId = c.Id
        WHERE m.Id = paramOrgB);
    
        
        IF (orgAId = orgBId) THEN
            set orgStatus = true;
        ELSE
            set orgStatus = false;
        END IF;
select orgStatus as 'CompanyStatus';
END IF;
END

一个查询即可

SELECT count(distinct c.Id) > 1 as 'CompanyStatus'
FROM Members as `m`
INNER JOIN Company as `c` ON m.CompanyId = c.Id
WHERE m.Id IN (paramOrgA, paramOrgB)

更少的击键次数:

SELECT COUNT(DISTINCT CompanyId) > 1 as 'CompanyStatus'
    FROM Members
    WHERE Id IN (paramOrgA, paramOrgB)