Select aus Select

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Select aus Select

    Hallo,
    kann man mehrere Select Anweisungen miteinander verbinden die results von der ersten select anweisung verwendet?

    z.B. (nicht funktionierendes Beispiel)

    Code:
    $db->select("(SELECT * FROM table where ID='7') UNION (SELECT * FROM table2 WHERE ID='result_erste_select_anweisung')");
    Der Zweck ist folgender: Ich weiß die Letzte ID eines Datensatzes. Mit dem ersten SELECT hole ich mir den Datensatz und möchte aber mit der zweiten Prüfen ob ein weitere Datensatz mit einem übereinstimmenden Ergebnis aus der ersten SELECT Anweisung vorhanden ist.

    Ich möchte dann die Datensätze ausgeben, in meinem Fall müsste er dann 2 Datensätze ausliefern.

    Ich hoffe Ihr versteht was ich meine. Vielen Dank für Eure Hilfe.
    Mfg
    BenBay

  • #2
    Re: Select aus Select

    Ich verstehe nicht, wieso du die 7 nicht auch einfach in den zweiten String einbaust?!

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      Meine Tabelle ist so aufgebaut:

      ID | name | topcatID



      Mit der ersten SELECT Anweisung lese ich den Datensatz aus der mir bekannt ist, also z.b. der mit der ID 7. In der zweiten Select Anweisung möchte ich den Datensatz mit der topcatID Ergebnisses auslesen.

      Ich könnte natürlich diesen Ansatz verwenden:

      Code:
      $db->select("(SELECT * FROM table where ID='7') UNION (SELECT * FROM table WHERE ID IN (SELECT topcatID FROM table WHERE ID='7')");
      Das würde funktionieren.
      Nur was mache ich wenn ich jetzt einen Dritten Datensatz bräuchte der aus dem zweiten SELECT aufgebaut werden soll.

      Es soll so sein das ich eine ID kenne.

      Sie wird ausgelesen.
      Hat der Result einen Wert in der topcatID soll auch dieser Datensatz ausgelsen werden.
      Hat dieser wiederum einen Wert in der topcatID soll dieser ebenfalls ausgelesen werden.

      Das ganze mit mehreren SELECT´s zu realisieren ist kein Problem ich dachte nur man könnte das in einer einzigen Select Anweisung unterbringen.
      Mfg
      BenBay

      Kommentar


      • #4
        hm ... ich würde es ja mal mit
        (SELECT * FROM table a where ID='7') UNION (SELECT * FROM table WHERE ID IN (SELECT topcatID FROM table WHERE ID=a.id)
        probieren, wenn das nicht geht eventuell mit Variablen
        @zahl=0;
        (SELECT @zahl:=id as id,* FROM table a where ID='7') UNION (SELECT * FROM table WHERE ID IN (SELECT topcatID FROM table WHERE ID=@zahl)
        wobei das letztere natürlich eigentlich nur Gemurkse ist...

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          warum so kompliziert, probiere mal
          Code:
          select * from `table`where topcatid=7 or id=7 order by id
          tut ja auch schon

          Kommentar

          Lädt...
          X