MySQL将行添加到存在一个值但不存在另一个值的表中

时间:2019-03-18 15:21:41

标签: mysql

我不确定是否要问正确的权限,但是如何为customer_group_id = 0的每个file_id添加一个新的行,其中customer group = 0。基本上每个file_id应该都有每个customer_group_id,但是有些缺少第0和1组。

|-----------------------------------------|
|id    |file_id|store_id|customer_group_id|
|-----------------------------------------|
|16389 |8376   |0       |1                |
|44241 |8376   |0       |2                |
|19669 |8376   |0       |3                |
|23765 |8376   |0       |11               |
|27861 |8376   |0       |21               |
|31956 |8376   |0       |31               |
|36051 |8376   |0       |61               |
|40146 |8376   |0       |71               |
|-----------------------------------------|

2 个答案:

答案 0 :(得分:0)

您可以对缺少的行执行INSERT。像这样:

insert into my_table (file_id, store_id, customer_group_id)
select file_id, '0', '0'
from my_table
where file_id not in (
  select file_id
  from my_table
  where customer_group_id = 0
)

答案 1 :(得分:0)

如果这些字段是唯一索引,则可以将插入忽略或替换插入....