2016-07-11 11 views
1

Hallo Ich habe folgende Einrichtungen:SQL JOIN 4 Tabelle und kehren alle Felder

TABLE USER:

id_user Name Username role

TABLE TASK:

id_task task_Name tipe

TABLE COMPLETED_TASK:

id_task id_user

TABLE ASSIGNED_TASK:

id_task id_user

Gibt es eine Möglichkeit, eine vollständige Liste der Aufgabe zu erhalten "abgeschlossen und zugewiesen" zusammen mit der entsprechender Benutzer?

Ich habe versucht, die folgende Abfrage aber dies genau funktioniert nicht, da es alle TASK.id_task

SELECT * FROM TASK 
LEFT OUTER JOIN COMPLETED_TASK ON TASK.id_task=COMPLETED_TASK.id_task 
LEFT OUTER JOIN ASSIGNED_TASK ON TASK.id_task=ASSIGNED_TASK.id_task 
INNER JOIN USER ON USER.id_user=ASSIGNED_TASK.id_user 
OR USER.id_user=COMPLETED_TASK.id_user 
+0

Zeigen Sie Ihre erwartete Ausgabe basierend auf einigen Abtastwerteingang zurückzukehren fehlgeschlagen. – 1000111

+0

verwenden SELECT * FROM TASK INNER COMPLETED_TASK ON TASK.id_task = COMPLETED_TASK.id_task INNER JOIN JOIN ASSIGNED_TASK ON TASK.id_task = ASSIGNED_TASK.id_task INNER JOIN USER ON USER.id_user = ASSIGNED_TASK.id_user OR USER.id_user = COMPLETED_TASK.id_user –

+0

ich möchte diese id_task, task name, zugewiesen zu benutzer, aufgabe tipe aber ich brauche wirklich id_task in jeder reihe – Lollo

Antwort

0
the real problem, is that sql join or more exactly left join, 
return all the left table rows, 
but return null value for the fieldset, that not have match in ON clause. 

so i must fill a table whit all task,whit this head 
<thead><th>id_task</th><th>Nametask</th><th>Assigned to</th>th>Tipology</th> 

and i need for all task the fiedset id_task for edit and delete task. 
so seems evry type of join dont give this result whats that the impossiblequery