Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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_Node.js_Database - Fatal编程技术网

Mysql 如何获取与值匹配或存在于另一个表中的记录?

Mysql 如何获取与值匹配或存在于另一个表中的记录?,mysql,sql,node.js,database,Mysql,Sql,Node.js,Database,我试图弄清楚,在这种情况下,如果两个字段等于某个值,或者它们存在于另一个表中,如何获取所有任务 以下是查询: SELECT TASKS.task_id, TASKS.task_title, TASKS.task_description, TASKS.task_assigned_name, TASKS.task_assigned_phone_number, TASKS.task_due_date_time, TASKS.task_category FROM TASKS WHERE TASKS.ta

我试图弄清楚,在这种情况下,如果两个字段等于某个值,或者它们存在于另一个表中,如何获取所有任务

以下是查询:

SELECT TASKS.task_id, TASKS.task_title, TASKS.task_description, TASKS.task_assigned_name, TASKS.task_assigned_phone_number, TASKS.task_due_date_time, TASKS.task_category
FROM TASKS
WHERE TASKS.task_complete = 1 AND 
      (TASKS.task_creator_id = ? OR 
       TASKS.task_assigned_user_id = ? OR
       WHERE EXISTS (SELECT  WATCHERS.task_id
                     FROM WATCHERS
                     WHERE WATCHERS.task_id = TASK.task_id AND
                           WATCHERS.watcher_user_id = ?
                    )
     );

这不会返回任何内容,即使我希望从数据库中得到结果。

您的语法似乎有错误。您有太多的
,其中
s:

   SELECT t.task_id, t.task_title, t.task_description, t.task_assigned_name, t.task_assigned_phone_number, t.task_due_date_time, t.task_category
    FROM TASKS t
    WHERE t.task_complete = 1 AND 
          (t.task_creator_id = ? OR 
           t.task_assigned_user_id = ? OR
           EXISTS (SELECT 1  -- the return value is immaterial
                   FROM WATCHERS w
                   WHERE w.task_id = t.task_id AND
                         w.watcher_user_id = ?
                  )
         );
之前存在的
位置
不合适


您的查询应该返回一个错误。一定要检查错误

您是否尝试过使用联接

SELECT TASKS.task_id, 
       TASKS.task_title, 
       TASKS.task_description, 
       TASKS.task_assigned_name, 
       TASKS.task_assigned_phone_number, 
       TASKS.task_due_date_time, 
       TASKS.task_category
FROM TASKS
JOIN WATCHERS on WATCHERS.task_id = TASK.task_id
WHERE TASKS.task_complete = 1 AND 
  (TASKS.task_creator_id = ? OR 
   TASKS.task_assigned_user_id = ? OR
   WATCHERS.watcher_user_id = ?);
我不确定这是否是你想要的逻辑


除了查询中的额外where之外,您可能还有一个额外的闭括号

此sql与您在包含示例数据和结果的重复文章中发布的结果集相匹配:

SELECT t.task_id, t.task_complete, t.task_creator_id, t.task_assigned_user_Id
FROM tasks t
WHERE t.task_complete = 1 AND
      (
      t.task_creator_id = 8
      OR t.task_assigned_user_id = 8
      OR EXISTS
          (
          SELECT w.task_id
          FROM watchers w
          WHERE w.task_id = t.task_id
          AND w.watcher_user_id = 8
          )
      )

好的,是的,我在哪里取下了它并做了更改,但仍然没有返回任何内容。看起来这些情况被忽略了?@Lion789。我的猜测是,没有任何内容与您传递的参数相匹配。当它的task_creator_id和task_complete明显等于1时,仍然返回一个空数组。这与我在另一篇文章中发布的内容有何不同?@Lion789我不知道如何到达重复的文章,因此无法比较。但此查询与您在重复文章中发布的结果集相匹配。在这里发布之前,我是在不允许的时候发布的。所以我跟着这个链接发到这里。