2013-10-17 44 views
2

我偶然发现了一段时间以来一直存在的问题。查找至少有2行值为x的条目

我有一个判断表(exp_judging),它持有与具有不同judge_id的相同rel_id的多行。通常至少有3行具有相同的rel_id。

我需要返回entry_id在“stage_1”列,其中至少有2行具有“1”,与具有相同rel_id每一行,stage_2 IS NULL和member_group等于5

以下查询是我觉得我已经拥有的壁橱,但我想它还有一英里之遥。

SELECT sub.entry_id 
FROM exp_judging AS jud 
LEFT JOIN exp_submissions AS sub ON jud.rel_id = sub.id 
WHERE jud.stage_2 IS NULL 
AND (jud.stage_1=1) >= 2 
AND sub.member_group = 5 
GROUP BY jud.rel_id 
LIMIT 1 

如果任何人都可以摆脱我如何能做到这一点一些轻,我将非常感激。

谢谢。

SQL FIDDLE:http://sqlfiddle.com/#!2/6d7e2/1

+0

安置自己的表,数据和sqlfiddle.com查询,然后提出建议。 – Tarik

+0

@Tarik我创建了一个sqlfiddle并添加了问题的链接。谢谢。 – user2889310

回答

0
SELECT sub.entry_id 
FROM exp_judging AS jud 
LEFT JOIN exp_submissions AS sub ON jud.rel_id = sub.id 
WHERE jud.stage_2 IS NULL 
AND jud.stage_1 = 1 
AND sub.member_group = 5 
GROUP BY jud.rel_id 
HAVING COUNT(*) >= 2 
相关问题