2012-06-08 65 views
0

如果下面的查询返回分配给尚未开始报告任何模板“模板”身份证......选择一个字段,只有在没有其他记录使用相同的字段值满足条件

如何我也说(对于这些模板ID中的每一个 - 此模板ID不能​​位于任何已经启动的其他报告中)。

或者,我的意思是我试图完成下面的查询,所以它说:“给我的所有模板的id没有任何报告开始使用模板”。就像对于每个t.id一样,我循环遍历表格,确保没有其他已经开始的template_id(t.id)报告。

SELECT DISTINCT t.id, 
FROM templates t 
LEFT OUTER JOIN reports r ON r.template_id = t.id 
WHERE r.start_time >= UTC_TIMESTAMP() 

谢谢!

回答

1

您可以使用子查询像

SELECT DISTINCT t.id, 
FROM templates t 
LEFT OUTER JOIN reports r ON r.template_id = t.id 
WHERE r.start_time >= UTC_TIMESTAMP() and t.id not in (select CONCAT_WS(',',tid) where report started) 

我没有完成的子查询,因为我不知道确切的表结构。所以完成了where子句

相关问题