我有一张SpecialOffers
名为特价商品的桌子和桌子,SOItems
如果我找到它,我想获得特定商品的特价,所以首先我这样做了:
IF EXISTS(SELECT * FROM SOTtems WHERE ItemType = 2 AND Itemid = @id)
BEGIN
INSERT INTO #SO
SELECT * FROM SpecialOffers so
INNER JOIN SOItems soi ON so.Id = soi.SpecialOfferID
WHERE soi.ItemType = 2 AND soi.Itemid = @id
END
但是为了摆脱 INNER JOIN 因为我认为这对性能更好,我这样做了:
DECLARE @specialOfferID INT
SET @specialOfferID = (SELECT SpecialOfferID FROM SOTtems WHERE ItemType = 2 AND Itemid = @id)
IF @specialOfferID IS NOT NULL
BEGIN
INSERT INTO #SO
SELECT * FROM SpecialOffers so
WHERE ID = @specialOfferID
END
因此,对于这个示例和一般情况,执行更多 sql 查询或使用 join 哪个更有效,性能更好
注意:在我写的存储过程中,我必须这样做超过 6 次,这就是我问你的原因 :)
谢谢