从两个表中配对并插入一个表(硬)

时间:2015-05-26 02:08:12

标签: mysql sql

我有3个表已包含以下行:

TBL_TESTER_LIST

id  tester_type tester_name
1      LMX         LMX-01
2      LMX         LMX-04
3      LMX         LMX-05
4      LMX         LMX-06

TBL_DEVICE_LIST

id  tester_type
2     LMX
3     LMX
4     LMX
5     LMX

最后是TBL_QUALIFIED_TESTER

id   tester_type device_id tester_id
1     LMX           7       1
2     LMX           8       1                                   
3     LMX           9       1                               
4     LMX           10      1                                           

我想要做的是在TBL_TESTER_LIST中获取一个ID,让我们说id 2,得到所有的< LMX'在TBL_DEVICE_LIST中,并将这些值插入TBL_QUALIFIED_TESTER。

为了澄清这一点,这将是TBL_QUALIFIED_TESTER的结果(连同已经存在的数据):

id   tester_type device_id tester_id
1     LMX           7       1
2     LMX           8       1                                   
3     LMX           9       1                               
4     LMX           10      1
5     LMX           1       2
6     LMX           2       2
7     LMX           3       2
8     LMX           4       2

我将对webapp使用此查询,那么有没有可能在单个/简单语句中执行此操作?我顺便使用MYSQL来尝试一下。

万一你想知道我为什么要配对,理由是如果用户选择这个测试人员,那么所有与之关联或配对的测试人员名称都会显示出来。

编辑:在TBL_QUALIFIED TESTER表中,tester_type和device_id应来自TBL_DEVICE_LIST,tester_id应来自TBL_TESTER_LIST。

1 个答案:

答案 0 :(得分:1)

根据我的理解,您似乎只想{两个表} join

select dl.tester_type, dl.id as `device_id`, tl.id as `tester_id`
  from tbl_tester_list tl
    inner join tbl_device_list dl
      on tl.tester_type = dl.tester_type

您可以像这样填充(预先存在的)tbl_qualified_tester

insert into tbl_qualified_tester(tester_type, device_id, tester_id)
select dl.tester_type, dl.id as `device_id`, tl.id as `tester_id`
  from tbl_tester_list tl
    inner join tbl_device_list dl
      on tl.tester_type = dl.tester_type
相关问题