数据库中有三个表:

user_tbl: userID | name | email | password
task_tbl: taskID | description | Date
usertask_tbl: userID | taskID

现在我想显示与一个用户相关的所有任务,它应该检查该用户的taskid并显示该用户的所有描述和日期。但它只显示了一个描述和日期。
以下是我的存储过程:
CREATE DEFINER=`root`@`localhost` PROCEDURE `alltask`(IN `useremail` INT(11))
BEGIN
SELECT @userID := userID FROM user_tbl WHERE email=useremail;
SELECT @TaskID :=taskID from usertask_tbl WHERE userID = @userID;
SELECT description, Date from task_tbl WHERE taskID = @TaskID;
END

我是新来的。如果这不是正确的方法,请帮助我。

最佳答案

执行以下操作时,仅选择一个任务:

SELECT @TaskID :=taskID from usertask_tbl WHERE userID = @userID;

因此,代替:
SELECT @TaskID :=taskID from usertask_tbl WHERE userID = @userID;
SELECT description, Date from task_tbl WHERE taskID = @TaskID;

尝试:
SELECT description, Date from task_tbl AS t1
INNER JOIN usertask_tbl AS t2 ON t1.taskID = t2.taskID
WHERE userID = @userID;

10-06 00:48