gpt4 book ai didi

mysql - 联合运营商的替代方案

转载 作者:行者123 更新时间:2023-11-30 22:05:20 25 4
gpt4 key购买 nike

我必须从 3 个表中选择数据。我在第一个表和第二个表之间使用 INNER JOIN 从第二个表中获取另一个字段。但如果不匹配,我必须用另一个第一个表字段替换它。我正在使用下面的查询,但处理时间太长。是否有另一种方法可以做到这一点

SELECT tba.field, tba.field1, tba.field2 AS test FROM tablea tba
WHERE tba.field NOT IN (SELECT ta.field FROM tablea ta INNER JOIN tableb tb ON ta.field = tb.field)
UNION
SELECT ta.field, ta.field1, tb.field2 AS test FROM tablea ta
INNER JOIN tableb tb ON ta.field = tb.field
UNION
SELECT tc.field, tc.field1, tc.field2 AS test FROM tablec tc

SQL fiddle

最佳答案

这样的东西就足够了:

SELECT tba.field, tba.field1, COALESCE(tb.field2, tba.field2) AS test 
FROM tablea tba
LEFT OUTER JOIN tableb tb ON tba.field = tb.field
UNION
SELECT tc.field, tc.field1, tc.field2 AS test FROM tablec tc

关于mysql - 联合运营商的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41954773/

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