替换多个条目

时间:2019-07-16 07:07:24

标签: mysql sql

我有两个具有相同列和相同数据类型的相似表。目标是获取table_a的数据,但如果存在具有相同ID的值,则将所有条目替换为table_b值。

所以我有以下两个选择:

SELECT table_a.id, table_a.text

SELECT table_b.id, table_b.text

使用伪代码:

iterate table_a data
    if table_a.id == table_b.id then
        table_out.id = table_b.id
        table_out.text = table_b.text
    else
        table_out.id = table_a.id
        table_out.text = table_a.text
    end if
end iterate

表table_a和table_b的数据不应被触及。仅select的输出应包含数据。

我首先想到的是通过左联接将两个表联接起来。然后,我需要一种如果要切换选择列的方法。

谢谢。

2 个答案:

答案 0 :(得分:2)

为此,我推荐from trading_calendars import get_calendar, register_calendar from my_calendar import MyCalendar register_calendar('MyCalendarName', MyCalendar, True) trading_calendar=get_calendar('MyCalendarName')

coalesce()

答案 1 :(得分:1)

您可以使用LEFT JOIN,它将为您提供所有table_a记录和两个表之间的公用记录。然后使用案例逻辑获取需求输出

SELECT
t1.id,
(CASE WHEN t1.id=t2.id THEN t2.text ELSE t1.text END) AS text
FROM table_a t1
LEFT JOIN table_b t2
ON t1.id=t2.id
ORDER BY t1.id

DEMO