找不到和我一樣的問題,希望大家幫幫我。我對我的 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
uj5u.com熱心網友回復:
一個查詢就行
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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/396723.html
上一篇:Mysql按多列條件排序
