【问题标题】:MySql fill up table with values depending on other tableMySql 用取决于其他表的值填充表
【发布时间】:2020-01-20 15:46:13
【问题描述】:

在 mySql 中我有 2 个表。

t1看起来像

id      color
------------
1       red
2       green
3       blue
4       purple

t2看起来像

id      t1_id       ship
------------------------
1       1           a
2       1           b
3       1           c
4       2           a
5       2           b
6       3           b

我需要填写 t2,以便 t1 中的每个条目在 t2 中都有三个条目 - 一个在船排中带有“a”,在船排中带有“b”,在其中一个带有“c”。 我不想有多个具有相同 t1_id ship 组合的条目。所以查询后 t2 应该是这样的。

t2 after我正在寻找的查询

id      t1_id       ship
------------------------
1       1           a
2       1           b
3       1           c
4       2           a
5       2           b
6       3           b
7       2           c
8       3           a
9       3           c
10      4           a
11      4           b
12      4           c

关于如何实现这一目标的任何想法?

【问题讨论】:

    标签: mysql sql join sql-insert


    【解决方案1】:

    如果你想把这些放在表中,你可以使用:

    insert into t2 (t1_id, ship)
        select  t1.id, s.ship
        from t1 cross join
             (select distinct ship from t2) s left join
             t2
             on t2.t1_id = t1.id and t2.ship = s.ship
        where t2.t1_id is null;
    

    这会在table2 中插入“剩余”值。

    【讨论】:

    • 您的select 子句为空。
    • @PaulSpiegel 。 . .谢谢。
    • 而 t.ship 应该是 s.ship?
    • 谢谢 - 帮助很大。
    猜你喜欢
    • 2014-09-22
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2021-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多