Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

MY SQL Abfragen kombinieren

Frage Entwicklung Datenbanken

Mitglied: KikiMiki

KikiMiki (Level 1) - Jetzt verbinden

27.03.2009, aktualisiert 09:16 Uhr, 3835 Aufrufe, 12 Kommentare

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

01.
SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio, 
02.
CI.OLDSTRING AS 'from', 
03.
CI.NEWSTRING AS 'to', 
04.
CG.CREATED AS Timestamp 
05.
FROM jiraissue j, changegroup CG, changeitem CI, issuetype i,priority prio, project proj 
06.
WHERE j.ID=CG.ISSUEID AND CG.ID=CI.GROUPID 
07.
AND j.issuetype = i.ID 
08.
AND j.priority = prio.ID 
09.
and j.project = proj.id 
10.
AND j.PKEY like 'projekt_a-%' 
11.
AND CI.FIELD = 'status' 
12.
 
13.
UNION ALL 
14.
 
15.
 
16.
Select j.id as ID,j.pkey as Issue, i.pname as Type, prio.pname as Prio, 
17.
'Issue Created' as 'from','Issue Created' as 'to', created as Timestamp 
18.
 
19.
from jiraissue j,issuetype i, priority prio, project proj 
20.
where j.pkey like 'projekt_a-%' 
21.
and j.priority=prio.id 
22.
and j.issuetype=i.id 
23.
and j.project = proj.id 
24.
 
25.
Order by ID desc,timestamp asc; 
26.
 

Abfrage 2 lautet:
01.
SELECT j.id AS ID,MAX(b.vname) AS Solution FROM jiraissue j,nodeassociation n,projectversion b 
02.
where pkey like 'projekt_a-%' 
03.
and n.association_type='IssueFixVersion' 
04.
and j.id=n.source_node_id 
05.
and n.sink_node_id = b.id 
06.
GROUP BY n.source_node_id 
07.
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?
Mitglied: godlie
27.03.2009 um 10:09 Uhr
Hm ich glaub so könnts gehen:
01.
SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio, 
02.
CI.OLDSTRING AS 'from', 
03.
CI.NEWSTRING AS 'to', 
04.
CG.CREATED AS Timestamp, 
05.
'Issue Created' as 'from', 
06.
'Issue Created' as 'to', 
07.
MAX(b.vname) AS Solution 
08.
FROM  
09.
jiraissue j,  
10.
changegroup CG,  
11.
changeitem CI,  
12.
issuetype i, 
13.
priority prio,  
14.
project proj,  
15.
issuetype i, 
16.
nodeassociation n,  
17.
projectversion b 
18.
WHERE  
19.
j.ID=CG.ISSUEID and CG.ID=CI.GROUPID 
20.
and j.issuetype = i.ID 
21.
and j.priority = prio.ID 
22.
and j.project = proj.id 
23.
and j.PKEY like 'projekt_a-%' 
24.
and CI.FIELD = 'status' 
25.
and n.association_type='IssueFixVersion' 
26.
and j.id=n.source_node_id 
27.
and n.sink_node_id = b.id 
28.
GROUP BY n.source_node_id 
29.
UNION ALL 
30.
Order by ID desc,timestamp asc;
Bitte warten ..
Mitglied: KikiMiki
27.03.2009 um 10:14 Uhr
Hi godlie,

folgende Fehlermeldung:

Not unique table/alias: 'i'


Hast eine Idee was geändert werden muss?
Bitte warten ..
Mitglied: godlie
27.03.2009 um 10:24 Uhr
ah ja habs grad gesehen das bei den Tables 2mal die issuetype i, drinne is gehört einmal raus.
Bitte warten ..
Mitglied: KikiMiki
27.03.2009 um 10:29 Uhr
und an welcher stelle?? ;)
Kannst den code bitte posten? ;)
Bitte warten ..
Mitglied: KikiMiki
27.03.2009 um 10:31 Uhr
Folgender Code benutzt:

01.
SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio, 
02.
CI.OLDSTRING AS 'from', 
03.
CI.NEWSTRING AS 'to', 
04.
CG.CREATED AS Timestamp, 
05.
'Issue Created' as 'from', 
06.
'Issue Created' as 'to', 
07.
MAX(b.vname) AS Solution 
08.
FROM  
09.
jiraissue j, 
10.
changegroup CG,  
11.
changeitem CI,  
12.
priority prio, 
13.
project proj, 
14.
issuetype i, 
15.
nodeassociation n,  
16.
projectversion b 
17.
WHERE  
18.
j.ID=CG.ISSUEID and CG.ID=CI.GROUPID 
19.
and j.issuetype = i.ID 
20.
and j.priority = prio.ID 
21.
and j.project = proj.id 
22.
and j.PKEY like 'projekt_a-%' 
23.
and CI.FIELD = 'status' 
24.
and n.association_type='IssueFixVersion' 
25.
and j.id=n.source_node_id 
26.
and n.sink_node_id = b.id 
27.
GROUP BY n.source_node_id 
28.
UNION ALL 
29.
Order by ID desc,timestamp asc;
Folgende Fehlermeldung:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Order by ID desc,timestamp asc' at line 29
Bitte warten ..
Mitglied: godlie
27.03.2009 um 10:39 Uhr
Hm das kann jetzt haarig werden.

01.
SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio, 
02.
CI.OLDSTRING AS 'from', 
03.
CI.NEWSTRING AS 'to', 
04.
CG.CREATED AS Timestamp, 
05.
'Issue Created' as 'from', 
06.
'Issue Created' as 'to', 
07.
MAX(b.vname) AS Solution 
08.
FROM  
09.
jiraissue j, 
10.
changegroup CG,  
11.
changeitem CI,  
12.
priority prio, 
13.
project proj, 
14.
issuetype i, 
15.
nodeassociation n,  
16.
projectversion b 
17.
WHERE  
18.
j.ID=CG.ISSUEID and CG.ID=CI.GROUPID 
19.
and j.issuetype = i.ID 
20.
and j.priority = prio.ID 
21.
and j.project = proj.id 
22.
and j.PKEY like 'projekt_a-%' 
23.
and CI.FIELD = 'status' 
24.
and n.association_type='IssueFixVersion' 
25.
and j.id=n.source_node_id 
26.
and n.sink_node_id = b.id 
27.
GROUP BY n.source_node_id 
28.
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.
Bitte warten ..
Mitglied: KikiMiki
27.03.2009 um 10:53 Uhr
Hi godlie,

erstmal vielen dank für deine mühe

Der Code wird ausgeführt liefert aber nicht das gewünschte Ergebnis

Jede ID taucht nur 1 mal auf. Aber es kann mehrere Einträge zu einer ID geben
Und es werden nur die ID`S angezeigt die eine Lösung haben

Ich brauch aber alle Zeilen aus Abfrage 1. Und wenn diese Eine Lösung hat dann soll diese hingeschrieben werden. Ansonsten wenn keine Lösung dann NULL
Hab ich jetzt 3 mal die selbe ID und diese ID hat die Lösung XY. dann soll 3 mal XY stehen das stört nicht
Bitte warten ..
Mitglied: godlie
27.03.2009 um 10:59 Uhr
Hm da muss man dann mit Left und Right Joins arbeiten aber ohne einer Beispieldatenbank wird das schwer.
Ich schau mir das am abend mal genauer an.
Bitte warten ..
Mitglied: KikiMiki
27.03.2009 um 11:02 Uhr
Das wäre super wenn du das irgendwie hinbekommst
Bitte warten ..
Mitglied: nxclass
27.03.2009 um 11:20 Uhr
01.
SELECT 
02.
    a1.*, 
03.
    a2.ID AS 'ID2' 
04.
FROM 
05.
    (  
06.
{deine Abfrage1} 
07.
    ) a1 LEFT JOIN ( 
08.
{deine Abfrage2} 
09.
    ) a2 ON a1.ID = a2.ID
... meinst du so ?
Bitte warten ..
Mitglied: KikiMiki
27.03.2009 um 11:30 Uhr
Hab es so gemacht:
01.
SELECT 
02.
    a1.*, 
03.
    a2.ID 
04.
FROM 
05.
    (  
06.
{SELECT j.id as ID,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio, 
07.
CI.OLDSTRING AS 'from', 
08.
CI.NEWSTRING AS 'to', 
09.
CG.CREATED AS Timestamp 
10.
FROM jiraissue j, changegroup CG, changeitem CI, issuetype i,priority prio, project proj 
11.
WHERE j.ID=CG.ISSUEID AND CG.ID=CI.GROUPID 
12.
AND j.issuetype = i.ID 
13.
AND j.priority = prio.ID 
14.
and j.project = proj.id 
15.
AND j.PKEY like 'proja-%' 
16.
AND CI.FIELD = 'status' 
17.
 
18.
UNION ALL 
19.
 
20.
 
21.
Select j.id as ID,j.pkey as Issue, i.pname as Type, prio.pname as Prio, 
22.
'Issue Created' as 'from','Issue Created' as 'to', created as Timestamp 
23.
 
24.
from jiraissue j,issuetype i, priority prio, project proj 
25.
where j.pkey like 'proja-%' 
26.
and j.priority=prio.id 
27.
and j.issuetype=i.id 
28.
and j.project = proj.id 
29.
 
30.
Order by ID desc,timestamp asc} 
31.
    ) a1 LEFT JOIN ( 
32.
{SELECT j.id AS ID,MAX(b.vname) AS Solution FROM jiraissue j,nodeassociation n,projectversion b 
33.
where pkey like 'proja-%' 
34.
and n.association_type='IssueFixVersion' 
35.
and j.id=n.source_node_id 
36.
and n.sink_node_id = b.id 
37.
GROUP BY n.source_node_id 
38.
order by j.id desc} 
39.
    ) a2 ON a1.ID = a2.ID; 
40.
 

Folgender Fehler

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT j.id as ID3,j.pkey AS Issue,i.pname As Type ,prio.pname AS Prio,
CI.OLDS' at line 6
Bitte warten ..
Mitglied: nxclass
27.03.2009 um 17:50 Uhr
wo steht '.. ID3..' ?
und '{' und '}' müssen weg !

edit
.. as ID .. -> .. as 'ID' ...
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Datenbanken
2 SQL Abfragen verbinden

Frage von cuxmini zum Thema Datenbanken ...

Windows Server
gelöst SQL-Server Datenbanksicherung inkl. Benutzerberechtigungen dafür? (4)

Frage von 1410640014 zum Thema Windows Server ...

Windows 10
gelöst Installationsproblem sql server 2014 auf windos 10 rechner (23)

Frage von jensgebken zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...