我有四张表如下所示:
test_case (1 ='通过',2 ='失败',3 ='跳过')
id testing_status
1 1
2 3
3 1
4 2
5 3
6 2
7 2
8 3
test_suite_with_case (在test_case表中使用test_case_id引用,在test_suite表中使用test_suite_id引用)
id test_suite_id test_case_id
1 4 1,3,5,2,6,7,8
2 3 2,5,4,6,7
test_suite
id test_suite_name
3 test_1
4 test_2
test_suite_run (在test_suite表中使用test_suite_id引用)
id test_suite_id name
1 3 BBH
2 4 CXN
现在我想通过 id 从 test_suite_run 运行 where 查询(例如test_suite_run中的id = 2),并希望输出外观如下所示:
id(test_suite_run) name test_suite_name pass fail skip
1 CXN test_suite_2 2 2 3
我是PHP和MySQL的新手。
答案 0 :(得分:0)
试试这个:
select
tr.id,
tr.name,
ts.test_suite_name,
sum(testing_status = 1) pass,
sum(testing_status = 2) fail,
sum(testing_status = 3) skip
from test_suite_run tr
inner join test_suite ts on tr.test_suite_id = ts.id
inner join test_suite_with_case tsc on ts.id = tsc.test_suite_id
inner join test_case tc on find_in_set(tc.id, tsc.test_case_id) > 0
group by
tr.id,
tr.name,
ts.test_suite_name;