Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   einen Wert aus einer Tabelle zweimal abfragen (https://www.delphipraxis.net/148780-einen-wert-aus-einer-tabelle-zweimal-abfragen.html)

SimStar001 8. Mär 2010 08:40

Datenbank: MYSQL • Version: 5 • Zugriff über: PHP

einen Wert aus einer Tabelle zweimal abfragen
 
Hallo,

der titel drück es nicht ganz aus, aber ich habe hier folgende Abfrage:
SQL-Code:
SELECT backend_auftraege.ID, backend_login.Name, backend_auftraege.TimeStampAktion, backend_auftraege.Auftragsart, backend_auftraege.Beschreibung, backend_auftraege.Bemerkung,backend_auftraege.Status FROM backend_login,backend_auftraege WHERE ((backend_auftraege.Status <> '0') AND ((backend_auftraege.Status <> '1') AND (backend_auftraege.Status <> '4') ) ) AND (backend_login.ID = backend_auftraege.ErzeugerID) ORDER BY Status, BesitzerID, TimeStampAktion DESC
Nun möchte ich aus der Tabelle backend_login den Wert Name gleich zweimal innerhalb dieser Abfrage abfragen, aber als Verschiedene Variablen.

Einmal wird Name ja als Name abgefragt für
SQL-Code:
backend_login.ID = backend_auftraege.ErzeugerID
. Somit erhalte ich den Namen des Erzeugers...
Nun bruche ich aber auch noch den Namen des Besitzers. also quasi müsste nochmal so abgefragt werden:
SQL-Code:
backend_login.ID = backend_auftraege.BesitzerID
Wie bringe ich das nun in eine Abfrage unter.
Wenn ichs so einfüge, bzw. über nen Subquery mache, dann bekomme ich die Fehlermeldung dass der Subquery mehr als eine Zeile enthält, oder ich bekomme für Besitzer und Erzeuger denselben Namen.

Wie stelle ich das gnaze vernünftig mit einer Abfrage an?

LG Marco

s.h.a.r.k 8. Mär 2010 08:43

Re: einen Wert aus einer Tabelle zweimal abfragen
 
Mein Post hat nichts mit der Antwort zu tun, aber hast du schon mal was von einem Alias in einem SQL-Statement gehört? Könnte sich in deinem Fall als sehr praktisch erweisen :zwinker:

SimStar001 8. Mär 2010 08:47

Re: einen Wert aus einer Tabelle zweimal abfragen
 
Ja habe ich, nur weis cih nicht wie ich es auf diesen fall anwenden soll.
Du meinst ja
SQL-Code:
select Name as Besitzer....

sniper_w 8. Mär 2010 08:57

Re: einen Wert aus einer Tabelle zweimal abfragen
 
ungetestet, in Notepad++ geschrieben..
SQL-Code:
SELECT
   ba.ID
   , bl_e.Name as erzeuger
   , bl_b.Name as besitzer
   , ba.TimeStampAktion
   , ba.Auftragsart
   , ba.Beschreibung
   , ba.Bemerkung
   , ba.Status
FROM
   backend_auftraege ba
left outer join
   backend_login bl_e on ba.ErzeugerID = bl_e.ID
left outer join
   backend_login bl_b on ba.BesitzerID = bl_b.ID
WHERE
   (ba.Status <> '0') AND ( (ba.Status <> '1') AND (ba.Status <> '4') )
ORDER BY
   ba.Status ASC,
   ba.BesitzerID ASC,
   ba.TimeStampAktion DESC

p80286 8. Mär 2010 09:46

Re: einen Wert aus einer Tabelle zweimal abfragen
 
Hallo SimStar001,

mir ist nicht so ganz klar worauf Du raus willst.
Die Tabellenverknüpfung läuft bei Dir über
SQL-Code:
(backend_login.ID = backend_auftraege.ErzeugerID)
willst Du jetzt noch eine zusätzliche Verknüpfung
SQL-Code:
backend_login.ID = backend_auftraege.BesitzerID
einfügen?

Oder willst Du "nur" backend_auftraege.Besitzer_ID und backend_auftraege.Erzeuger_ID ausgeben?

oder willst Du Dies?
SQL-Code:
Select backend_login.name Name1,bal.Name Name2
FROM backend_login,backend_login bal,backend_auftraege
where backend_login.ID = backend_auftraege.ErzeugerID
  and bal.ID = backend_auftraege.BesitzerID
(was Sniper_w vorgeschlagen hat)

Gruß
K-H

SimStar001 9. Mär 2010 07:41

Re: einen Wert aus einer Tabelle zweimal abfragen
 
Vielen Dank für die Hilfe,

das von sniper_w ist genau das was ich brauche...

Danke nochmal!


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz