Hi Leute,
ich bin relativ neu im Thema Datenbanken!
Ich habe eine DB "modules" gegeben, dass z.B. aus drei Tabellen m1,m2,m3 (Namen sind egal!) besteht und diese haben die gleiche Struktur:
TaskCommonDim|Resource|TaskStart|TaskEnd|Piority|TaskProcessed
(ist leider so gegeben!)
Ich joine per SQL die Tabellen:
TaskStart ist vom Typ Datetime und
"TaskProcessed" vom Typ int(1), d.h. es kann 0 oder 1 sein
Nun wollte ich die geringste Datetime aus "TaskStart" (aus der gejointen Tabelle)
Wie kann ich meine Join-Anfrage mit der obigen Update-Anfrage kombinieren? Ich möchte praktisch die kleinste Startzeit aus allen Tabellen und dann "TaskProcessed" in der entsprechenden Zeile der gejointen Tabelle auf 1 setzen!
ich bin relativ neu im Thema Datenbanken!
Ich habe eine DB "modules" gegeben, dass z.B. aus drei Tabellen m1,m2,m3 (Namen sind egal!) besteht und diese haben die gleiche Struktur:
TaskCommonDim|Resource|TaskStart|TaskEnd|Piority|TaskProcessed
(ist leider so gegeben!)
Ich joine per SQL die Tabellen:
Code:
SELECT m1.TaskCommonDim, m1.TaskStart, m1.TaskProcessed, m2.TaskStart, m2.TaskProcessed, m3.TaskStart, m2.TaskProcessed FROM m1 AS m1 JOIN m2 AS m2 ON ( m1.TaskCommonDim = m2.TaskCommonDim ) JOIN m3 AS m3 ON ( m1.TaskCommonDim = m3.TaskCommonDim ) WHERE m1.TaskProcessed = '0' AND m2.TaskProcessed = '0' AND m3.TaskProcessed = '0'
"TaskProcessed" vom Typ int(1), d.h. es kann 0 oder 1 sein
Nun wollte ich die geringste Datetime aus "TaskStart" (aus der gejointen Tabelle)
Code:
UPDATE m1 SET TaskProcessed=true WHERE TaskStart=(SELECT min(TaskStart) FROM m1 );
Comment