仅当具有相同字段值的其他记录不符合条件时,才选择字段

时间:2012-06-08 18:04:19

标签: mysql

如果以下查询返回了'模板'分配给尚未开始的报告的任何模板的ID ...

我怎么能说(对于这些模板ID中的每一个都是& - 这个模板ID不能​​出现在已经开始的任何其他报告上。)

或者,我的意思是我尝试完成下面的查询,因此它说“#34;向我提供所有模板的ID,其中模板未被任何已启动的报告使用#34 ;.就像每个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 个答案:

答案 0 :(得分: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子句