gpt4 book ai didi

mysql - 连接两个表并在条件满足时替换值

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

我正在尝试使用一个表达式来连接两个表(前两个)以获得类似于第三个表的内容。

我想选择“Sitepage”和“Medium”,并在“Sitepage”和“Campaign ID”之间匹配 RIGHT 5 个字符的行上加入前两个表。此外,如果匹配,THEN 'Program' 将替换 'Medium'。语法是什么?

Sitepage | Medium                 
xyz.com/campaign=12345 | A
xyz.com/campaign=23456 | C

Campaign ID | Program
12345 | B

Sitepage | Medium
xyz.com/campaign=12345 | B
xyz.com/campaign=23456 | C

http://i.stack.imgur.com/pq35n.png

最佳答案

我的回答基于@Juan 的,但我必须进行一些调整才能使其正常工作。

SELECT
SitePage, COALESCE(t2.Program, t1.Medium) as Medium
FROM Table1 t1
LEFT JOIN Table2 t2
ON RIGHT(t1.Sitepage, 5) = COALESCE(t2.`Campaign ID`, -1);

@Abhik 也正朝着正确的方向前进。它比上面那个更通用,它假定 SitePage 的最后 5 个字符将是唯一相关的字符。话虽如此,我会选择......

SELECT
SitePage, COALESCE(t2.Program, t1.Medium) as Medium
FROM Table1 t1
LEFT JOIN Table2 t2
ON SUBSTRING_INDEX(t1.Sitepage,'=',-1)
= COALESCE(t2.`Campaign ID`, -1);

SQL Fiddle example

关于mysql - 连接两个表并在条件满足时替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29947294/

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