Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选中重复行不';不存在_Mysql_Sql - Fatal编程技术网

Mysql 选中重复行不';不存在

Mysql 选中重复行不';不存在,mysql,sql,Mysql,Sql,表格: exp_submissions ----------------------------------------------------------------------------------- id | entry_id | member_id | member_group | category_id | type_id | portfolio_number 目标: exp_submissions -----------------------------------------

表格:

exp_submissions
-----------------------------------------------------------------------------------
id | entry_id | member_id | member_group | category_id | type_id | portfolio_number
目标:

exp_submissions
-----------------------------------------------------------------------------------
id | entry_id | member_id | member_group | category_id | type_id | portfolio_number
  • exp\u.rel\u id
    exp\u submissions.id
  • 仅选择以下位置的行:
    • exp\u submissions.member\u group=5
      exp\u.pre=1
    • judge\u id!=1
      ,或
      判断id为空
    • 没有具有相同
      rel\u id
      judge\u id=1
      的现有行
以下查询完成了直到最后一部分的所有操作:

SELECT sub.entry_id 
FROM exp_judging AS jud
LEFT JOIN exp_submissions AS sub ON jud.rel_id = sub.id 
WHERE (jud.judge_id != 1 OR jud.judge_id IS NULL)
AND jud.pre = 1
AND sub.member_group = 5
LIMIT 1
以下是我在经验判断表中的测试行:

正如您将看到的,有两行具有
rel_id=35
(id 200和197)。 上面的查询正在选择行id 197,即使有另一行具有相同的
rel\u id
,并且具有
judge\u id=1
。这是我的问题

我需要添加到我的查询中,以检查是否不存在具有相同
rel\u id
judge\u id=1
的其他行,但我不知道如何添加


谢谢。

您应该使用
不存在
条款:

   SELECT sub.entry_id 
     FROM exp_judging AS jud
LEFT JOIN exp_submissions AS sub ON jud.rel_id = sub.id 
    WHERE (jud.judge_id != 1 OR jud.judge_id IS NULL)
      AND jud.pre = 1
      AND sub.member_group = 5
      AND NOT EXISTS (SELECT sub2.entry_id 
                        FROM exp_judging AS jud2
                   LEFT JOIN exp_submissions AS sub2 ON jud2.rel_id = sub2.id 
                       WHERE (jud2.judge_id = 1 )
                         AND jud2.pre = 1
                         AND sub2.member_group = 5
                         AND jud2.rel_id = jud.rel_id)
    LIMIT 1

编辑:添加了一个新条件

。我已经试过了,但是没有达到预期的效果。即使我删除了第200行,它仍然不会显示任何结果。然后应该显示1,因为第197行没有相同的judge_id,并且没有judge_id为“1”和rel_id为“35”的行。请立即尝试,我在上添加了一个新的conditionSpot!谢谢你,这真是太可怕了。我会研究你的问题!!