SQL - 是否有执行 "foreach A in table, if !B, insert B"的查询?

标签 sql mysql

我有一个包含 2 列的表格:

nid realm
1   domain_id
1   domain_site
2   domain_id
3   domain_id

我希望每个条目都有 1 个域 ID 条目和 1 个域站点条目。所以我想结束:

nid realm
1   domain_id
1   domain_site
2   domain_id
2   domain_site
3   domain_id
3   domain_site    

如果我在 PHP 中执行此操作,我将只遍历整个列表并在不存在的时候插入额外的行。不幸的是,我只有 PHPmyAdmin 访问这个数据库。有没有办法在直接 SQL 中执行此操作?

(如果它有所作为:该表目前大约有 3000 行,我认为其中大约 2000 行需要插入额外的行。此外,这是一次性的事情,因此不需要优化/优步-光滑。)

最佳答案

INSERT IGNORE INTO `table`
SELECT `alt1`.`nid`, `alt2`.`realm`
FROM `table` AS `alt1`, `table` AS `alt2`

关于SQL - 是否有执行 "foreach A in table, if !B, insert B"的查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1274603/

相关文章:

php - 使用 PDO 在查询中使用传递的变量

c# - 不使用正则表达式过滤字符串匹配

sql - 监视 SQL Server 是否有新行

python - 一种将非常大的 csv 数据写入 SQL 数据库的方法

mysql - sql中如何统计两个表中相同的值

php - 如何在MySql中编写case内的子查询?

sql - 我想在 SQL 数据库中存储许多对象类型。我应该为每种对象类型使用不同的表吗?

php - 从 15 分钟间隔开始获取结果

sql - 无法批量加载。文件 "c:\data.txt"不存在

mysql - 聚合订单