gpt4 book ai didi

Mysql联合优先级

转载 作者:行者123 更新时间:2023-11-29 12:22:40 24 4
gpt4 key购买 nike

我有 3 个表,我的查询是:

SELECT BRAND, AMOUNT FROM
(
SELECT BRAND, AMOUNT FROM SALES1
UNION
SELECT BRAND, AMOUNT FROM SALES2
UNION
SELECT BRAND, AMOUNT FROM SALES3
)

销售 1 表的品牌为:A 且金额:50

销售 3 表的品牌为:A 且金额:100

我要取金额50,忽略100。我想问一下,使用union有没有优先级?

最佳答案

如果您想要第一次出现,则应使用union all 而不是union。出于性能原因,这很重要,因为 union 会消除不必要的重复。

然后对每个子查询使用 not contains 子句:

(SELECT BRAND, AMOUNT
FROM SALES1
) UNION ALL
(SELECT BRAND, AMOUNT
FROM SALES2 s2
WHERE NOT EXISTS (SELECT 1 FROM SALES1 s1 WHERE s1.BRAND = s2.BRAND)
) UNION ALL
(SELECT BRAND, AMOUNT
FROM SALES3 s3
WHERE NOT EXISTS (SELECT 1 FROM SALES1 s1 WHERE s1.BRAND = s3.BRAND) AND
NOT EXISTS (SELECT 1 FROM SALES2 s2 WHERE s2.BRAND = s3.BRAND)
)

关于Mysql联合优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28792562/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com