【发布时间】:2015-10-02 18:45:24
【问题描述】:
我有两张如下表。下面提到的两个表中的 Id 列值都是自动递增的。
登录信息+----+------------+-------------+
| Id |LoginName |IP |+------+----------+-------------+
| 1 |User1 |aa.bb.cc.dd|
| 2 |User2 |xx.xx.xx.xx|
| 3 |User3 |ii.ii.ii.ii|+----+------------+-------------+
用户组+----+------------+-------------+
| Id |LoginName |Groups |+------+----------+-------------+
| 1 |User1 |Group1 |
| 2 |User1 |Default |
| 3 |User2 |Group2 |
| 4 |User3 |Group3 |+----+------------+-------------+
LoginInfo 表中的每个用户都应该是 UserGroups 表中“默认”组的成员。因此,在上表中,User1 与“默认”组相关联,但 User2 和 User3 没有。
我想检查是否为 UserGroups 表中的每个用户添加了“默认”组条目。如果可用,则忽略插入,否则为该用户插入一条新记录。
我试过的mysql查询是INSERT IGNORE INTO USERGROUPS(LOGINNAME, GROUPS) SELECT LOGINNAME, 'Default' FROM LOGININFO L WHERE L.IP IS NOT NULL;
执行后,消息显示为 3 行受影响,UserGroups 表看起来像
+----+------------+-------------+
| Id |LoginName |Groups |+------+----------+-------------+
| 1 |User1 |Group1 |
| 2 |User1 |Default |
| 3 |User2 |Group2 |
| 4 |User3 |Group3 |
| 5 |User1 |Default |
| 6 |User2 |Default |
| 7 | User3 | Default |+----+------------+-------------+
但我真正寻找的是如下
+----+------------+-------------+
| Id |LoginName |Groups |+------+----------+-------------+
| 1 |User1 |Group1 |
| 2 |User1 |Default |
| 3 |User2 |Group2 |
| 4 |User3 |Group3 |
| 5 |User2 |Default |
| 6 |User3 |Default |+----+------------+-------------+
请告知有关查询的建议或任何解决方法。
【问题讨论】:
标签: mysql