【问题标题】:SQLite: Inserting values from table in database1 to table in database2 without overwritingSQLite:将database1中的表中的值插入database2中的表而不覆盖
【发布时间】:2015-07-25 10:25:20
【问题描述】:

我真的无法理解这一点。我们是两个在冲突的数据库中手动编写文本位的家伙(我知道,这并不酷),现在我们需要整合我们的工作。对不起,如果它是重复的,但我没有从其他答案中得到它。请耐心等待,我在这里需要帮助。

两个不同的数据库需要合并一列,尽可能避免覆盖。

His database:         My database:     RESULT:

Database 1            Database 2        Database 2
Table1                Table1            Table1
A Column              A Column          A Column

Blah                  NULL              Blah
NULL                  Bla               Bla
Bla                   Bla               Bla Bla

我猜 INNER JOIN 与 INSERT INTO 混合在一起?

我们正在使用 SQL 编辑器在名为 Valentina Studio 的 GUI 中工作。

【问题讨论】:

  • 有ID栏吗?
  • 是的!它们具有相同的 ID。

标签: sql sqlite merge inner-join


【解决方案1】:

试试类似的东西

Insert into tab3 (col1) 
Select col1 from tab1 where col1 is not null
Union 
select col1 from tab2 where col1 is not null

【讨论】:

  • 嗯,但这不包括“跨数据库”元素,是吗?
  • Union 将删除重复项。如果没有,请执行外部查询,例如: select distinct col1 from (the query...) a
【解决方案2】:

当你自己的值为NULL时,你想复制另一个值:

UPDATE db2.Table1
SET AColumn = (SELECT AColumn
               FROM db1.Table1
               WHERE db1.Table1.ID = db2.Table1.ID)
WHERE AColumn IS NULL;

当你自己的列有值时,你想追加另一个值,如果它不是NULL:

UPDATE db2.Table1
SET AColumn = AColumn || IFNULL((SELECT ' ' || AColumn
                                 FROM db1.Table1
                                 WHERE db1.Table1.ID = db2.Table1.ID),
                                '')
WHERE AColumn IS NOT NULL;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-18
    • 1970-01-01
    • 2011-09-09
    相关资源
    最近更新 更多