Bacaaardi Geschrieben 29. Januar 2009 Geschrieben 29. Januar 2009 Hallo folgendes SQL-Statment SELECT project.pname AS Projekt, jiraissue.pkey AS Schlüssel, priority.pname AS Prio, issuetype.pname AS Vorgangstyp, issuestatus.pname AS Status, resolution.pname AS Lösung, jiraissue.reporter AS Autor, jiraissue.assignee AS Bearbeiter FROM priority, jiraissue, project, issuestatus, issuetype, resolution WHERE priority.id = jiraissue.priority AND issuetype.id=jiraissue.issuetype AND project.id=jiraissue.project AND issuestatus.id=jiraissue.issuestatus AND resolution.id=jiraissue.resolution; Ich habe Problemem mit dem resolution (Lösung) - Letzte Zeile Die anderen Felder waren alles Pflichtfelder die gefüllt sein müssen Mach ich die Abfrage ohne LÖSUNG dann hab ich 4300 Zeilen Das Feld Resolution (LÖSUNG) ist optional. Entweder man trägt was ein, wenn nicht steht NULL drin. Führe ich das gepostete SQL-Statment aus werden nur noch 2300 Zeilen ausgegeben. Ich möchte aber alle. In denen wo keine Lösung steht soll halt NULL ausgegeben werden. (in der DB steht bei nicht ausgewählter Lösung: NULL) Was muss ich ändern
dbwizard Geschrieben 29. Januar 2009 Geschrieben 29. Januar 2009 Hallo folgendes SQL-Statment SELECT project.pname AS Projekt, jiraissue.pkey AS Schlüssel, priority.pname AS Prio, issuetype.pname AS Vorgangstyp, issuestatus.pname AS Status, resolution.pname AS Lösung, jiraissue.reporter AS Autor, jiraissue.assignee AS Bearbeiter FROM priority, jiraissue, project, issuestatus, issuetype, resolution WHERE priority.id = jiraissue.priority AND issuetype.id=jiraissue.issuetype AND project.id=jiraissue.project AND issuestatus.id=jiraissue.issuestatus AND resolution.id=jiraissue.resolution; Ich habe Problemem mit dem resolution (Lösung) - Letzte Zeile Die anderen Felder waren alles Pflichtfelder die gefüllt sein müssen Mach ich die Abfrage ohne LÖSUNG dann hab ich 4300 Zeilen Das Feld Resolution (LÖSUNG) ist optional. Entweder man trägt was ein, wenn nicht steht NULL drin. Führe ich das gepostete SQL-Statment aus werden nur noch 2300 Zeilen ausgegeben. Ich möchte aber alle. In denen wo keine Lösung steht soll halt NULL ausgegeben werden. (in der DB steht bei nicht ausgewählter Lösung: NULL) Was muss ich ändern - Hallo, Du benötigst einen LEFT OUTER Join für diese Beziehung. Bei Oracle würdest du resolution.id=jiraissue.resolution(+); verwendet. Leider hast du dein DBMS nicht angegeben.... Allgemein würde es so aussehen : select spalte_1, spalte_2, spalte_3 from tabellen_name_1 left [outer] join tabellen_name_2 on tabellen_name_1.spalte_1 = tabellenname_2.spalte_1 Gruss
Bacaaardi Geschrieben 29. Januar 2009 Autor Geschrieben 29. Januar 2009 MySQL Wie würde dann der Code aussehen ich habe es so hinbekommen: SELECT jiraissue.pkey AS Schlüssel, resolution.pname AS Lösung FROM jiraissue LEFT OUTER JOIN resolution ON jiraissue.resolution = resolution.id; Will ich das aber mit meiner restlichen Abfrage kombinieren ensteht nur Chaos Über 100 000 Zeilen Was muss ich abändern`?
dbwizard Geschrieben 29. Januar 2009 Geschrieben 29. Januar 2009 MySQL Wie würde dann der Code aussehen ich habe es so hinbekommen: SELECT jiraissue.pkey AS Schlüssel, resolution.pname AS Lösung FROM jiraissue LEFT OUTER JOIN resolution ON jiraissue.resolution = resolution.id; Will ich das aber mit meiner restlichen Abfrage kombinieren ensteht nur Chaos Über 100 000 Zeilen Was muss ich abändern`? MYSQL ? Kein Ahnung. Da würde ein Blick in die Doku helfen. Vorausgesetzt, es sind nicht wirklich 100'000 Rows, auf welche diese Bedinung zutrifft, sieht es nach einem kartesischem Produkt aus, d.h. du hast in der FROM Clause Tabelllen, welche keinen Join haben...Post doch mal auch "den Rest" des Statements Gruss
Bacaaardi Geschrieben 29. Januar 2009 Autor Geschrieben 29. Januar 2009 Hier mein Statment: SELECT project.pname AS Projekt, jiraissue.pkey AS Schlüssel, priority.pname AS Prio, issuetype.pname AS Vorgangstyp, issuestatus.pname AS Status, resolution.pname AS Lösung, jiraissue.reporter AS Autor, jiraissue.assignee AS Bearbeiter FROM priority, jiraissue, project, issuestatus, issuetype, resolution WHERE priority.id = jiraissue.priority AND issuetype.id=jiraissue.issuetype AND project.id=jiraissue.project AND issuestatus.id=jiraissue.issuestatus AND resolution.id=jiraissue.resolution; Blos sollen auch die Zeilen angeziegt werden bei denen die Resolution NULL ist Alle anderen Bedingungen müssen erfüllt sein. Plus die Vorgänge welche keine LÖSUNG haben Keine Ahnung wie ich das anders ausdrücken soll
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden