我正在尝试从db中选择cpu_time,但时间必须与其他一些标准相对应 - 即build_version,test_letter,design_index,multi_thread和test_index
我认为会起作用(内部SELECT DISTINCT
声明自己起作用):
set query [db eval \ {SELECT DISTINCT cpu_time WHERE cpu_time IN (SELECT DISTINCT mgc_version, test_type_letter, design_index, test_index, cpu_time, multi_thread FROM TestExecutions WHERE test_type_letter BETWEEN $testletter AND $testletter)}]
***注意 - 这给了我一个"没有这样的列:cpu_time"错误
我的第一个SELECT将从不同的返回中提取所有项目.然后,从每次返回,我想只为每种类型的$ testletter使用cpu_time.
这用于生成仅具有cpu_time的CSV文件.我明白错了什么?
谢谢!
您应该始终使用WHERE xxx IN (SELECT xxx FROM ...)
,而不是在内部选择中选择多个项目.您可以在外部选择中添加这些,例如:
SELECT DISTINCT mgc_version, test_type_letter, design_index, test_index, cpu_time, multi_thread FROM TestExecutions WHERE cpu_time IN ( SELECT DISTINCT cpu_time FROM TestExecutions WHERE test_type_letter BETWEEN $testletter AND $testletter )