2010-07-22 165 views
1

我有两个表,一个存储序列号uut_build,另一个用于测量属于该序列号measure_list,我试图获得属于唯一序列号的measure_list中的记录数。
查询#1如何一个Mysql的(子)查询,返回多行,并使用另一个查询的结果结合起来

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] 

是否有可能只用一个查询语句来做到这一点?

在此先感谢!

回答

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,值将为零。如果您只想要在MEASURE_LIST中有记录的记录列表,请从我提供的查询中删除“LEFT”。

+0

我怀疑uut_build上的id对应于measure_list上的uut_id - 否则,只能通过查询measure_list返回所需的输出。 – 2010-07-22 12:28:17

+0

@Mark Ba​​nnister:取决于OP是否希望从'UUT_BUILD'表中获取值。仅在“MEASURE_LIST”表上运行查询将只显示表中存在的连续记录 - 它不会显示那些在“MEASURE_LIST”中没有支持记录的连续记录。 – 2010-07-22 15:29:41

+0

是的 - 我更关心连接领域。 – 2010-07-22 17:02:06

相关问题