WinFuture-Forum.de: Sql Abfrage Mit Verschachtelten Select - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Sql Abfrage Mit Verschachtelten Select


#1 Mitglied ist offline   MaliMaster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 907
  • Beigetreten: 10. April 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Deutschland

geschrieben 08. April 2008 - 09:14

Hallo Leute,

ich hab mal wieder ein Verständnisproblem mit einer SQL Abfrage. Ich brauch Daten aus zwei Tabellen in einer Abfrage. Ein JOIN kommt glaube ich nicht in Frage. Im Moment habe ich zwei Abfragen und die sehen so aus:

SELECT * FROM projekt 
	WHERE organisation_name = '".$array_org["organisation_name"]."'
	ORDER BY projekt_id DESC;


SELECT * FROM projekt_worklflow
	WHERE workflow_projekt_id = '".$array_projekte['projekt_id']."'
	ORDER BY workflow_add DESC;


In Tabelle projekt sind Projekte erfasst. Diese Projekte haben einen Status, der in der Tabelle projekt_worklflow gespeichert ist. Jedes Projekt hat mehrere Status. Ich brauch aber nur den Letzten Status.

Den bekomme ich mit "ORDER BY workflow_add DESC". Habt ihr eine Idee wie ich das in einer Abfrage aufbauen kann?

Dieser Beitrag wurde von MaliMaster bearbeitet: 08. April 2008 - 09:15

0

Anzeige



#2 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. April 2008 - 12:55

Ohne Gewähr ;D
SELECT * FROM projekt
LEFT JOIN projekt_workflow ON projekt.projekt_id = projekt_workflow.workflow_projekt_id
ORDER BY projekt_workflow.workflow_add DESC
LIMIT 1

0

#3 Mitglied ist offline   MaliMaster 

  • Gruppe: aktive Mitglieder
  • Beiträge: 907
  • Beigetreten: 10. April 02
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Deutschland

geschrieben 08. April 2008 - 14:37

Ich hätte dazu schreiben müsse, dass ich nicht nur ein Projekt abrufe, sondern gleich alle ins Array lade.
0

#4 Mitglied ist offline   Henning 

  • Gruppe: aktive Mitglieder
  • Beiträge: 238
  • Beigetreten: 22. März 04
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 08. April 2008 - 15:01

Normal mache ich sowas über ein Sub-Select. In unserem Projekt haben Status auch einen Timestamp zu dem die gesetzt wurden.
Im Sub-Select lese ich den maximalen Timestamp zu den gesuchten Werten, im eigentlichen Select dann den Eintrag, der diesen Timestamp hat.

Das wäre dann etwa sowas:

SELECT *
FROM projekt_workflow a
  ,  projekt b
WHERE a.workflow_projekt_id = '".$array_projekte['projekt_id']."'
  AND a.workflow_projekt_id = b.projekt_id
  AND a.workflow_add = (SELECT max(workflow_add)
						FROM projekt_workflow c
						WHERE a.workflow_projekt_id = c.workflow_projekt_id)

Dieser Beitrag wurde von Henning bearbeitet: 08. April 2008 - 15:09

0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0