如何组合一个返回多行的Mysql(sub)查询的结果,并将其用于另一个查询

时间:2010-07-22 00:42:15

标签: sql mysql aggregate-functions

我有两个表,一个存储序列号 uut_build ,另一个用于属于序列号 measure_list 的测量,我正在尝试计算 measure_list 中属于唯一序列号的记录 查询#1

select id, uut_sn from uut_build where uut_sn like 'A%';

查询#2

select count(*) from measure_list as m WHERE m.uut_id = [result from query #1]

是否可以只使用一个查询语句来执行此操作?

提前致谢!

1 个答案:

答案 0 :(得分:2)

使用:

   SELECT ub.uut_sn,
          COALESCE(COUNT(ml.*), 0) AS cnt
     FROM UUT_BUILD ub
LEFT JOIN MEASURE_LIST ml ON ml.uut_id = ub.uut_sn
    WHERE ub.uut_sn LIKE 'A%'
 GROUP BY ub.uut_sn

有点不清楚哪些列链接了两个表......

这将返回所有序列号 - 如果它们在MEASURE_LIST中没有记录,则cnt值将为零。如果您只想要一个包含MEASURE_LIST记录的记录列表,请从我提供的查询中删除“LEFT”。