proev og lav en JOIN mellem log og systems
jeg tror at
FROM log, systems LEFT OUTER JOIN dependency ON dependency.logId = log.id
laeses som
FROM log, (systems LEFT OUTER JOIN dependency ON dependency.logId = log.id)
Hmm.
SELECT log.id, systems.name, log.action, log.time, log.dependencyBool, dependency.systemId, log.initials FROM log join systems LEFT OUTER JOIN dependency ON dependency.logId = log.id WHERE log.active=1 AND dependency.systemId = systems.name ORDER BY `time` DESC
Returnerer ingen rækker
FROM (log join systems ON ???=???) LEFT OUTER JOIN dependency ON dependency.logId = log.id
Ja, næsten. Dog returneres stadig et systemId fra dependency-tabellen. Kan jeg hente det systemnavn der hører til dette systemId samtidig ?
SELECT log.id, systems.name, log.action, log.time, log.dependencyBool, dependency.systemId, log.initials FROM (log join systems ON log.systemId=systems.id) LEFT OUTER JOIN dependency ON dependency.logId = log.id WHERE log.active=1 ORDER BY `time` DESC
du har systems.name i listen med felter du selecter??
Ja, men skal jo sådan set bruge den to gange. Da hver enkelte log har et specifikt systemnavn tilknyttet. Men sagtens kan påvirke andre systemer (Ud fra dependency-tabellen). jeg vil have dependency.systemId vist som et systemnavn istedet?
Er det ligetil, siden du skriver det sådan? I så fald må du da gerne skære det ud i det velkendte materiale lidt tykkere end papir;-)
saa skal du ogsaa joine dependency med systems
SELECT log.id, systems.name, log.action, log.time, log.dependencyBool, dependency.systemId, log.initials FROM (log JOIN systems ON log.systemId=systems.id) LEFT OUTER JOIN (dependency JOIN systems AS ss ON ss.id=dependency.systemId) ON dependency.logId = log.id WHERE log.active=1 ORDER BY `time` DESC
Dette giver mig samme resultat, hvad gør jeg forkert?
Det skal forresten nævnes at nogle af de resultater der hives ud har null-værdi i dependency.systemId feltet, har det betydning når jeg skal joine den?
Hvis det har vil jeg bare løse det med en default værdi som hedder 0, som så vil matche et ikke-system i systems. Vil det være forkert?
HEHE. Nu fik jeg det endelig til at virke:
SELECT log.id, systems.name, log.action, log.time, log.dependencyBool, sd.name as dependentSystem, log.initials FROM (log join systems ON log.systemId=systems.id) LEFT OUTER JOIN (dependency LEFT OUTER JOIN systems as sd ON dependency.systemId=sd.id) ON dependency.logId = log.id WHERE log.active=1 ORDER BY `time` DESC
Tak for hjælpen hr. V.
Vil de være så venlig at lægge et svar;-)