mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Do 18.04.2024 19:37 Benutzername: Passwort: Auto-Login

Thema: MySQL: Left JOIN Problem vom 08.10.2009


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> MySQL: Left JOIN Problem
Autor Nachricht
DerM
Threadersteller

Dabei seit: 18.01.2009
Ort: -
Alter: 42
Geschlecht: Männlich
Verfasst Do 08.10.2009 12:09
Titel

MySQL: Left JOIN Problem

Antworten mit Zitat Zum Seitenanfang

Hallöchen zusammen ich hab ein kleines Problem...

Ich hab hier mein SQL Statement, welcher auch soweit funktioniert. Ich habe einen Job den ich über eine ID zuordne, soweit so gut.. Jetzt kann man zu den Jobs Zeiten anlegen, welche jeweils eine Beschreibung enthalten dürfen. Soweit auch ganz gut. Nun jetzt aber das Problem wenn ich einen Job angelegt habe, zu dem es aber noch keine Zeiten gibt, bekomme ich ein Empty zurücl geliefert. auch sämtliches Debugging hat mir immer ein Empty Set zurückgeliefert.

Im folgende Statement hat die Job Id 185, drei Zeiten.. Wenn ich aber eine andere Job Id sagen wir mal 186 anlege, zu der es noch keine Zeiten gibt, bekomm ich gar nichts zurück.

Code:
select       z.bezeichnung as jobbeschreibung, z.mitarbeiter_id, z.a_job_id, z.startzeit, z.endzeit, j.id,
                                         j.bezeichnung, j.beschreibung, p.bezeichnung as projektbezeichnung, s.status, k.firma
                                from       jobs_zeiten as z
                               
                                left join    (projekte as p, jobs_status as s, kunden as k, jobs as j)
                                on          (p.id = j.projekte_id and p.kunden_id = k.id and j.status = s.id and z.a_job_id = j.id)
                               
                                where       j.verantwortlicher_mitarbeiter_id = 172
                                and       s.id > 0
                                and       j.id = 185


Hatte auch schon überlegt das über Nested Querys zu lösen, was aber in Coldfusion (die Anwendungssprache hier) nicht erlaubt ist, und ich eigentlich aus dem PHP Bereich stamme, wo Nested Querys ja erlaubt sind...

Hoffe ihr könnt mir helfen, und mir einen kleinen Denkanstoß geben wie ich das Query so optmieren kann, das er mir auch die Null Felder zurückgibt und nicht sagt "Empty Set"

// Nachtrag: Habs auch mit UNION versucht, aber dann haben die Ergebnisse ja eine unterschiedliche Anzahl ---

Danke Danke


Zuletzt bearbeitet von DerM am Do 08.10.2009 12:11, insgesamt 1-mal bearbeitet
  View user's profile Private Nachricht senden
DerM
Threadersteller

Dabei seit: 18.01.2009
Ort: -
Alter: 42
Geschlecht: Männlich
Verfasst Do 08.10.2009 12:56
Titel

Antworten mit Zitat Zum Seitenanfang

Vorerst solved: Ich hab dann doch 2 Querys draus gemacht, die mir zwar nicht so ganz schmecken, aber immerhin funktionieren ...

Trotzdem danke Lächel
  View user's profile Private Nachricht senden
Anzeige
Anzeige
bacon

Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
Verfasst Do 08.10.2009 15:32
Titel

Antworten mit Zitat Zum Seitenanfang

ja is ja auch klar, du fragst ja auch nach Zeiten, nicht nach Jobs. Statt

SELECT ... FROM zeiten JOIN jobs, .... solltest du SELECT .... FROM jobs JOIN zeiten

benutzen. Nested Queries kenne ich nicht, du meinst wahrscheinlich subselects. Die gibt es auch in der PHP-Welt nur äußerst eingeschränkt, da durch die mysql-Treiber immer nur flache Ergebnismengen und keine Hierarchien zurückgeben werden. Außerdem ist die Funktionalität an sich vom verwendeten DBS abhängig, Subselects werden erst ab mysql > 4 unterstützt.

Select (select count(*) ...) anzahl

geht.

select (select * ...)

geht nicht *zwinker*
  View user's profile Private Nachricht senden
DerM
Threadersteller

Dabei seit: 18.01.2009
Ort: -
Alter: 42
Geschlecht: Männlich
Verfasst Do 08.10.2009 16:35
Titel

Antworten mit Zitat Zum Seitenanfang

bacon hat geschrieben:
ja is ja auch klar, du fragst ja auch nach Zeiten, nicht nach Jobs. Statt

SELECT ... FROM zeiten JOIN jobs, .... solltest du SELECT .... FROM jobs JOIN zeiten

benutzen. Nested Queries kenne ich nicht, du meinst wahrscheinlich subselects. Die gibt es auch in der PHP-Welt nur äußerst eingeschränkt, da durch die mysql-Treiber immer nur flache Ergebnismengen und keine Hierarchien zurückgeben werden. Außerdem ist die Funktionalität an sich vom verwendeten DBS abhängig, Subselects werden erst ab mysql > 4 unterstützt.

Select (select count(*) ...) anzahl

geht.

select (select * ...)

geht nicht *zwinker*


jobs join zeiten hats auch nicht gebracht leider .. Hatte das auch schon vorher versucht .. Jo mit nested Querys sind Subselcects gemeint.. Select count () hat auch nicht das gewünschte ergebnis geliefert ..

Wie gesagt sind jetzt 2 Querys.. einer mit 3 Joins und einen einzelenen, abhängig des Ergebnis des ersten Querys ..

Aber danke Lächel
  View user's profile Private Nachricht senden
 
Ähnliche Themen [SQL] LEFT JOIN + UPDATE Problem
JOIN LEFT
LEFT JOIN ?
SQL Abfrage mit LEFT JOIN bleibt hängen
[MYSQL & PHP || GELÖST] -> Join-Abfrage
[MySQL] Join über 3 und mehr Tabellen …
Neues Thema eröffnen   Neue Antwort erstellen
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.