gpt4 book ai didi

mysql - 是否可以简化此 SQL UNION 查询?

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:18 25 4
gpt4 key购买 nike

是否可以简化此 UNION 以避免合并查询的近乎冗余?如此处所示,这两个查询是相似的。他们只是加入表 2 中的不同列。我在同一个查询中使用 Union 而不是仅使用内部连接 ​​2x 的原因是,由于此查询用作子查询,结果必须在 1 列中。

SELECT t1.id as id
FROM table1 g
INNER JOIN table2 t1 on g.t_id = t1.id
WHERE g.id=1
UNION
SELECT t2.id as id2
FROM table1 g
INNER JOIN table2 t2 on g.t2_id = t2.id
WHERE g.id=1

最佳答案

我不明白为什么这不能被视为可以通过两个谓词中的任何一个匹配来满足的简单内部联接。为了清晰起见,我删除了 t1、t2 和 g 的原始表别名。由于我不知道查询是否会产生重复行,因此我使用 DISTINCT 以与原始查询中 UNION 相同的方式折叠重复行。

SELECT DISTINCT table2.id
FROM table1
INNER JOIN table2
ON ( table1.t_id = table2.id OR table1.t2_id = table2.id )
WHERE table1.id = 1
;

关于mysql - 是否可以简化此 SQL UNION 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12334531/

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