MY SQL Abfragen kombinieren
Hallo und Guten Morgen
ich habe ein Problem mit meine SQL-Abfragen, jede einzeln für sich klappt super, ich möchte die beiden aber kombinieren, hab aber keine Ahnung wie. Es ist eine MySQL-Datenbank.
Abfrage 1 lautet
Abfrage 2 lautet:
Abfrage 1 liefert 2541 Zeilen
Abfrage 2 liefert 702 Zeilen
In Abfrage 2 wird zu jeder ID eine Lösungsversion mitgegeben. Jede ID gibt es nur ein mal
Jetzt sollen diese Lösungsvrsionen den ID in Abfrage I zugeordnet werden.
D.h. Sind ID in Abfrage 1 und 2 gleich soll die ID mitgegeben werden
In der Gesamtabfrage müssen alle 2541 Zeilen geliefert werden.
Nur soll noch die Lösungversion (Abfrage 2) in Abfrage 1 eingebaut werden
Die ID aus Abfrage 1 die keine Lösungsversion haben sollen trotzdem aufgeführt werden
Ist das verständlich?
ich habe ein Problem mit meine SQL-Abfragen, jede einzeln für sich klappt super, ich möchte die beiden aber kombinieren, hab aber keine Ahnung wie. Es ist eine MySQL-Datenbank.
Abfrage 1 lautet
SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio,
CI.OLDSTRING AS 'from',
CI.NEWSTRING AS 'to',
CG.CREATED AS Timestamp
FROM jiraissue j, changegroup CG, changeitem CI, issuetype i,priority prio, project proj
WHERE j.ID=CG.ISSUEID AND CG.ID=CI.GROUPID
AND j.issuetype = i.ID
AND j.priority = prio.ID
and j.project = proj.id
AND j.PKEY like 'projekt_a-%'
AND CI.FIELD = 'status'
UNION ALL
Select j.id as ID,j.pkey as Issue, i.pname as Type, prio.pname as Prio,
'Issue Created' as 'from','Issue Created' as 'to', created as Timestamp
from jiraissue j,issuetype i, priority prio, project proj
where j.pkey like 'projekt_a-%'
and j.priority=prio.id
and j.issuetype=i.id
and j.project = proj.id
Order by ID desc,timestamp asc;
Abfrage 2 lautet:
SELECT j.id AS ID,MAX(b.vname) AS Solution FROM jiraissue j,nodeassociation n,projectversion b
where pkey like 'projekt_a-%'
and n.association_type='IssueFixVersion'
and j.id=n.source_node_id
and n.sink_node_id = b.id
GROUP BY n.source_node_id
order by j.id desc;
Abfrage 1 liefert 2541 Zeilen
Abfrage 2 liefert 702 Zeilen
In Abfrage 2 wird zu jeder ID eine Lösungsversion mitgegeben. Jede ID gibt es nur ein mal
Jetzt sollen diese Lösungsvrsionen den ID in Abfrage I zugeordnet werden.
D.h. Sind ID in Abfrage 1 und 2 gleich soll die ID mitgegeben werden
In der Gesamtabfrage müssen alle 2541 Zeilen geliefert werden.
Nur soll noch die Lösungversion (Abfrage 2) in Abfrage 1 eingebaut werden
Die ID aus Abfrage 1 die keine Lösungsversion haben sollen trotzdem aufgeführt werden
Ist das verständlich?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 112524
Url: https://administrator.de/forum/my-sql-abfragen-kombinieren-112524.html
Ausgedruckt am: 25.12.2024 um 01:12 Uhr
12 Kommentare
Neuester Kommentar
Hm ich glaub so könnts gehen:
SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio,
CI.OLDSTRING AS 'from',
CI.NEWSTRING AS 'to',
CG.CREATED AS Timestamp,
'Issue Created' as 'from',
'Issue Created' as 'to',
MAX(b.vname) AS Solution
FROM
jiraissue j,
changegroup CG,
changeitem CI,
issuetype i,
priority prio,
project proj,
issuetype i,
nodeassociation n,
projectversion b
WHERE
j.ID=CG.ISSUEID and CG.ID=CI.GROUPID
and j.issuetype = i.ID
and j.priority = prio.ID
and j.project = proj.id
and j.PKEY like 'projekt_a-%'
and CI.FIELD = 'status'
and n.association_type='IssueFixVersion'
and j.id=n.source_node_id
and n.sink_node_id = b.id
GROUP BY n.source_node_id
UNION ALL
Order by ID desc,timestamp asc;
Hm das kann jetzt haarig werden.
falls das nicht zum gewünschten Effekt führt evtl ein DISTINCT nach MAX(b.vname) AS Solution einfügen.
SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio,
CI.OLDSTRING AS 'from',
CI.NEWSTRING AS 'to',
CG.CREATED AS Timestamp,
'Issue Created' as 'from',
'Issue Created' as 'to',
MAX(b.vname) AS Solution
FROM
jiraissue j,
changegroup CG,
changeitem CI,
priority prio,
project proj,
issuetype i,
nodeassociation n,
projectversion b
WHERE
j.ID=CG.ISSUEID and CG.ID=CI.GROUPID
and j.issuetype = i.ID
and j.priority = prio.ID
and j.project = proj.id
and j.PKEY like 'projekt_a-%'
and CI.FIELD = 'status'
and n.association_type='IssueFixVersion'
and j.id=n.source_node_id
and n.sink_node_id = b.id
GROUP BY n.source_node_id
Order by ID desc,timestamp asc;
falls das nicht zum gewünschten Effekt führt evtl ein DISTINCT nach MAX(b.vname) AS Solution einfügen.