在嵌套选择中在mysql中插入多个值

时间:2015-05-05 11:30:49

标签: mysql

我对sql很新。这可能是基本的。我有两个表,一个有组,一个有成员,我想将它们链接起来,以便第三个表包含id_group和id_member。导入期间提供了值MYGROUP。我试过这个:

insert ignore into member_group (id_group, id_member) 
values ( ( select id_group from group where group_name='MYGROUP' ) ,
( select id_member from member ) );

但我最终在member_group中有一行包含空值。

就它本身而言,例如产生1:

select id_group from group where group_name='MYGROUP';
+----------+
| id_group |
+----------+
|        1 |
+----------+

就自己生成一个id_members列表

mysql> select id_member from member;
+-----------+
| id_member |
+-----------+
|       123 |
|       456 |
|       789 |

我希望member_group看起来像这样

+-----------+----------+
| id_group  |id_member |
+-----------+----------+
|         1 |      123 |
|         1 |      456 |
|         1 |      789 |

我该怎么做(不使用shell脚本,for循环和sed)?

根据要求,

mysql> select * from group;
+----------+------------------+
| id_group | group_name       |
+----------+------------------+
|        1 | vip-member       |
|        2 | standard-member  |


mysql> select * from member;
+-----------+----------+
| id_member | fullname |
+-----------+----------+
|       123 |      Bob |
|       456 |     Pete |

如果我可以使它工作,那么应该如下所示。

mysql> select * from member_group;
+------------------+----------+-----------+
| id_member_groups | id_group | id_member |
+------------------+----------+-----------+
|                1 |        1 |       123 |
|                2 |        1 |       456 |
|                3 |        1 |       789 |
|                4 |        2 |       123 |
|                5 |        2 |       789 |

id_group在导入阶段提供。一批说200个成员,将成为同一个id_group的成员。我正在考虑将group_id添加到临时表中。但说实话,我有点失落。

1 个答案:

答案 0 :(得分:0)

您可以进行交叉联接以实现目标。

Internet Widgets(Iframe)