我有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。
答案 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