KikiMiki: SQL-Probleme mit Abfrage

Ich habe ein Problem mit folgendem SQL-Statement

SELECT * FROM  
(SELECT a.source_node_id, b.cname AS Komponente  
FROM nodeassociation a LEFT OUTER JOIN component b on (a.sink_node_id = b.id)  
WHERE  association_type = 'issueComponent') x  
LEFT OUTER JOIN  
(SELECT a.source_node_id, c.vname AS FixVersion  
FROM nodeassociation a LEFT OUTER JOIN projectversion c ON (a.sink_node_id = c.id)  
WHERE  association_type = 'IssueFixversion') y  
ON (x.source_node_id=y.source_node_id)  
LEFT OUTER JOIN  
(SELECT a.source_node_id, c.vname AS BetrifftVersion  
FROM nodeassociation a left outer join projectversion c ON (a.sink_node_id = c.id)  
WHERE  association_type = 'Issueversion') z  
ON (x.source_node_id=z.source_node_id)

Damit frage ich Daten aus unserem Tickettool ab. Wleches Ticket hat welche Komponente,Fix Version oder Version

Das Problem ist:

jeder vorgang hat eine jiraissue.id, falls dieser vorgang eine Komponente hat, steht diese komponente mit der ID in der Tabelle nodeassociation.

Es gibt aber Vorgänge die keine Kompnente oder Version haben. Somit auch keinen Eintrag in der nodeassociation Tabelle

Wie muss ich mein Statement ändern das er mir jeden Vorgang zeigt. Egal ob dieser eine Komponente hat oder nicht. Da wo keine Komponente oder Version vorhanden ist soll halt NULL stehen
Jemand eine Idee??

  1. yo,

    Wie muss ich mein Statement ändern das er mir jeden Vorgang zeigt. Egal ob dieser eine Komponente hat oder nicht. Da wo keine Komponente oder Version vorhanden ist soll halt NULL stehen

    grundsätzlich finde ich deine abfrage komplizierter, als sie wohl sein muss, auf den ersten blick sind die unterabfragen für mich unnötig, aber dazu würde ich gerne mal mehr hintergrundwissen von dir bekommen, sprich deine relevanten tabellen nd wie sie miteinnder in verbindung stehen plus beispieldaten (ganz wichtig).

    im grunde genommen ist dein problem von der theorie einfach zu lösen, du nimmst als erstes die tabelle, wo alle vorgänge stehen. dann machst du die OUTER JOINS darauf und gut ist. aber wie gesagt, mir ist dein daten-design noch nicht ganz klar. je besser du es uns erklärst, um so schneller können wir die gute hilfe leisten. ich denke aber mal dein problem ist trivial.

    Ilja