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我不知道如何到达重复的文章,因此无法比较。但此查询与您在重复文章中发布的结果集相匹配。在这里发布之前,我是在不允许的时候发布的。所以我跟着这个链接发到这里。