2016-05-14 28 views
1

Ich habe drei Tabellen in der Datenbank:select-Anweisung gespeicherte Prozedur in Mysql

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

Jetzt möchte ich alle Aufgaben eines Benutzers im Zusammenhang angezeigt werden, sollte es gehen und die taskid des Benutzers erhalten überprüfen und alle anzeigen die Beschreibung und das Datum für diesen Benutzer. Stattdessen zeigt es eine Beschreibung und ein Datum.

Hier ist meine gespeicherten Prozedur:

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 

ich neu in diesem bin. Wenn das nicht der richtige Weg ist, bitte hilf mir.

Antwort

1

Sie nur eine Aufgabe sind die Auswahl, wenn Sie tun:

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

Daher statt:

SELECT @TaskID :=taskID from usertask_tbl WHERE userID = @userID; 
SELECT description, Date from task_tbl WHERE taskID = @TaskID; 

Versuchen:

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

Danke @Edu ... Es funktionierte ! – dpk12

Verwandte Themen