verschachtelte Unteranfrage?

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

  • verschachtelte Unteranfrage?

    Hi!

    Ich habe mal wieder ein Problem bei dem ich hoffe dass Ihr mir weiterhelfen könnt:

    Ich habe folgende Anfrage formuliert (PostgreSQL):

    Select relname from pg_class WHERE
    oid in (Select attrelid from pg_attribute Where attname 'test');

    Diese Anfrage gibt mir eine Liste aller Tabellen meiner DB aus, die das Attribut 'test' haben.
    Soweit so gut.
    Ich möchte aber die Anfrage so ändern dass zum Schluss eine Liste der Tabellennamen ausgegeben wird bei denen 'test' = 42 ist.

    Also den ersten Schritt habe ich bereits, aber ich weiß nicht wie ich das einbauen soll, dass alle Tabellen aus meiner Liste darauf überprüft werden ob sie das Tupel 'test' = 42 beinhalten.
    Geht das vielleicht mit einer Subquery?

    Vielen Dank!

    Wassim

  • #2
    entweder eine 2. Bedingung rein oder JOIN verwenden. Aber als aller erste Empfehlung von mir: "Erst Grundlagen lernen, nicht nur die Programmiertechniken/-sprachelemente, sondern viel mehr in Richtung logisches Denken u.a. mathematische Grundlagen, systematische Vorgehenweise zur Lösung des Problems... Dann kannst du mit Coden anfangen." Denn entweder bist du zu faul zu denken, oder unfähig, auf sowas einfaches zu kommen (IMHO eher letzteres).

    Last but not least:
    BTW: diese Abfrage: Select attrelid from pg_attribute Where attname 'test' soll funz
    Zuletzt geändert von asp2php; 17.09.2004, 08:37.

    Kommentar


    • #3
      Ok...
      Sag mal ist es in diesem Forum auch möglich einen Post zu schreiben ohne schief angemacht zu werden? Wo liegt das Problem? Es ist ein Forum, mein Post steht unter "SQL/Datenbanken" und Du musst zugeben mein Problem hat schon irgendwie mit Datenbanken zu tun .
      Muss man bei sowas persönlich werden?
      Es wäre ein Klacks für Dich (weil Du ja offensichtlich der Datenbank-Gott bist) die Frage zu beantworten, aber nein, Mr. "cool, es gibt jemanden der es bei weitem nicht so checkt wie ich, also mach ich ihn erstmal nieder" schreibt mir lieber die Weisheiten von der Welt aus der er kommt....
      Nicht, dass Du der einzige bist der sowas von sich geben kann.
      Ich meine kriegst Du keine ab? Darfst Du Dich nirgendwo abreagieren?
      Bist Du frustriert wegen irgendwas? Dann bin ich sicher dass es dafür sicher auch ein Forum gibt in dem Du Dich verewigen kannst...

      Ach ja... Du hast natürlich vollkommen Recht ...
      Die Anfrage sollte lauten :
      Select attrelid from pg_attribute Where attname = 'test';

      Kommentar


      • #4
        Original geschrieben von Wassim
        Ok...
        Sag mal ist es in diesem Forum auch möglich einen Post zu schreiben ohne schief angemacht zu werden?

        Wo liegt das Problem? Es ist ein Forum, mein Post steht unter "SQL/Datenbanken" und Du musst zugeben mein Problem hat schon irgendwie mit Datenbanken zu tun.
        weniger SQL, mehr logische Überlegung, denn wenn du schon im Stande bist, mit sub-selects zu arbeiten...
        Muss man bei sowas persönlich werden?
        Kritik ist immer persönlich
        Es wäre ein Klacks für Dich (weil Du ja offensichtlich der Datenbank-Gott bist) die Frage zu beantworten,
        ich habe dir auch den Tipp zur Lösung gegeben, was willst du denn noch . Übrigens DB-Gott bin ich mit Sicherheit nicht. Sagen wir mal so: Ich komme zurecht, ohne irgendwen fragen zu müssen .
        aber nein, Mr. "cool, es gibt jemanden der es bei weitem nicht so checkt wie ich, also mach ich ihn erstmal nieder" schreibt mir lieber die Weisheiten von der Welt aus der er kommt....
        Nicht, dass Du der einzige bist der sowas von sich geben kann.
        Ich meine kriegst Du keine ab? Darfst Du Dich nirgendwo abreagieren?
        Bist Du frustriert wegen irgendwas? Dann bin ich sicher dass es dafür sicher auch ein Forum gibt in dem Du Dich verewigen kannst...
        Nein, wozu andere Foren auszusuchen, ich habe hier doch dich gefunden, du bist der auserwählte .

        Wie gesagt, es stört mich einfach, dass man auf die Antwort im Forum wartet, anstatt sich Gedanken drüber zu machen. Denn gib zu, wenn du dich nur etwas länger mit dem Problem beschäftigst, wirst du auch feststellen, das es gar kein Problem gewesen war.
        Ach ja... Du hast natürlich vollkommen Recht ...
        hab' ich (fast) immer

        Kommentar


        • #5
          OffTopic:

          Ich komme zurecht, ohne irgendwen fragen zu müssen


          SCNR

          [Test] MySQL cli Emulator

          Kommentar


          • #6
            Da versucht aber jemand lustig zu sein ... oh warte ... das warst nicht Du (asp2php) ... lag vielmehr an den Smilies.

            weniger SQL, mehr logische Überlegung, denn wenn du schon im Stande bist, mit sub-selects zu arbeiten...
            " ... dann hat das mit SQL nichts zu tun, gut ... Du bist dem Problem näher gekommen ... aber NUR deswegen weil Du mit logischem Denken auf die Funktionalität/Syntax von sub-selects gekommen bist...." Hä?

            Kritik ist nicht immer persönlich ...

            Denn entweder bist du zu faul zu denken, oder unfähig, auf sowas einfaches zu kommen (IMHO eher letzteres).
            Hättest Du Dir sparen können.
            Die dritte Alternative wäre vielleicht : "oder Du hast mit SQL bisher so ziemlich GAR nichts am Hut gehabt..."
            Oh... das ist sogar der Fall!!

            Ach ja ... danke für Deinen Tip zur Lösung!!!

            Analog : "Wie setze ich mein Computersystem neu auf? - Mit nem Betriebssystem."
            Ich hab Dir doch nen TIP GEGEBEN!? Was willste denn noch!?


            Wie gesagt, es stört mich einfach, dass man auf die Antwort im Forum wartet, anstatt sich Gedanken drüber zu machen. Denn gib zu, wenn du dich nur etwas länger mit dem Problem beschäftigst, wirst du auch feststellen, das es gar kein Problem gewesen war.
            Sorry, dass ich Dich damit gestört habe ...
            Oh ... sicher. Weißt Du was ? In der 1. Ankündigung dieses Forums sollte statt "Erst suchen - dann fragen!" stehen : "Es ist verboten bei SQL/DB Problemen diese im Forum zu posten! Wenn Ihr Euch nur etwas länger mit Eurem Problem beschäftigt dass werdet Ihr feststellen dass es gar kein Problem war ... ."
            Du weißt doch gar nicht ob oder wie sehr ich mir Gedanken darüber gemacht habe. Wenn's Dich stört, dann antworte nicht. Dann muss ich mich länger mit dem Problem beschäftigen.
            Es kann nicht sein, dass ich mir bei einem Problem erst überlegen muss: "Habe ich mich jetzt lange genug damit beschäftigt um es im Forum zu posten? Komme ich im Laufe der nächsten Woche nicht vielleicht von selbst drauf? Ich möchte ja niemanden im Forum stören ... "
            Kann nicht sein, dass man befürchten muss man wird von irgendeinem Eumel verarscht wenn man diese Frage stellt.

            Ich hätte nichts gesagt wenn sich herausgestellt hätte, dass die Antwort zu meiner Frage schon 143 mal im Forum steht. Da wären Vorwürfe gerechtfertigt gewesen.
            Es ist ja auch nicht so, dass ich die Frage hatte: "Wie schreibt man SELECT ? SELECT oder SELÄKT?"

            Kommentar


            • #7
              Original geschrieben von Wassim
              Da versucht aber jemand lustig zu sein ... oh warte ... das warst nicht Du (asp2php) ... lag vielmehr an den Smilies.
              Na, ich bin von Natur aus lustig, das Problem ist nur, dass du unhähig bist, überhaupt was zu unterscheiden
              " ... dann hat das mit SQL nichts zu tun, gut ... Du bist dem Problem näher gekommen ... aber NUR deswegen weil Du mit logischem Denken auf die Funktionalität/Syntax von sub-selects gekommen bist...." Hä?
              ich habe einfach angenommen, dass die Abfrage von dir kommt. Woher soll ich denn wissen, dass du sie irgendwoher geklaut hast , denn wenn jemand im Stande ist ein Sub-Select zusammen zu kriegen, aber mit der 2. geforderten Bedingung nichts anfangen kann, ist mehr als ungewöhnlich. OK, sorry, jetzt weiss ich auch, dass die Überlegung von der 2. Bedingung auch nicht von dir stammt, das erklärt sich natürlich alles .
              Kritik ist nicht immer persönlich ...
              ich kann natürlich einen Roman dafür schreiben, der herum schweift dass er auf dem ersten Blick nicht so klingt, aber letztendlich bedeutet er ja doch dass ich dich runter putze, also wozu der Aufwand, nur damit du ein besseres Gefühl bekommst? Ich bitte dich, du sollst zu mindest realistisch genug sein, um es zu erkennen
              Hättest Du Dir sparen können.
              Die dritte Alternative wäre vielleicht : "oder Du hast mit SQL bisher so ziemlich GAR nichts am Hut gehabt..."
              Oh... das ist sogar der Fall!!
              wieso, ... sollte ich es mir sparen, nur weil es dich trifft ...
              Ach ja ... danke für Deinen Tip zur Lösung!!!

              Analog : "Wie setze ich mein Computersystem neu auf? - Mit nem Betriebssystem."
              Ich hab Dir doch nen TIP GEGEBEN!? Was willste denn noch!?
              falscher Vergleich, also doch sehr unfähig bist du. Genau das meine ich. Selbst ein vergleichbares Beispiel kannst du auch nicht fertig bringen.
              Sorry, dass ich Dich damit gestört habe ...
              keine Ursache, gern geschehen
              Oh ... sicher. Weißt Du was ? In der 1. Ankündigung dieses Forums sollte statt "Erst suchen - dann fragen!" stehen : "Es ist verboten bei SQL/DB Problemen diese im Forum zu posten! Wenn Ihr Euch nur etwas länger mit Eurem Problem beschäftigt dass werdet Ihr feststellen dass es gar kein Problem war ... ."
              Du weißt doch gar nicht ob oder wie sehr ich mir Gedanken darüber gemacht habe.
              in deinem Fall ist es ratsam, denn ist es wirklich so schwer eine 2. Bedingung unterzubringen, wo du schon das wesentliche hast?
              Wenn's Dich stört, dann antworte nicht.
              will ich aber ...
              Dann muss ich mich länger mit dem Problem beschäftigen.
              Es kann nicht sein, dass ich mir bei einem Problem erst überlegen muss: "Habe ich mich jetzt lange genug damit beschäftigt um es im Forum zu posten? Komme ich im Laufe der nächsten Woche nicht vielleicht von selbst drauf? Ich möchte ja niemanden im Forum stören ... "
              Kann nicht sein, dass man befürchten muss man wird von irgendeinem Eumel verarscht wenn man diese Frage stellt.
              Es soll aber so sein, damit du dich etwas mehr mit der Materie beschäftigst, anstatt bei jedem Sch**ß eine triviale Frage rein postest.
              Ich hätte nichts gesagt wenn sich herausgestellt hätte, dass die Antwort zu meiner Frage schon 143 mal im Forum steht. Da wären Vorwürfe gerechtfertigt gewesen.
              Es ist ja auch nicht so, dass ich die Frage hatte: "Wie schreibt man SELECT ? SELECT oder SELÄKT?"
              kann auch nicht, weil
              - nach PostgreSQL selten gefragt wurde und
              - sub-select ist bei MySQL (noch) nicht verfügbar ist.
              tut aber nicht zur Sache, denn es ist wie gesagt mehr ein logisches Problem als sonst was. Aber da du ....

              BTW: kennst du den Unterschied im Sprachgebrauch zwischen Abfrage und Anfrage? Nein, kennst du nicht . Ich erläutere es dir mal. Abfrage bedeutet: du bekommst auf jeden Fall eine Antwort, was bei Anfrage nicht der Fall ist . Eine Query im SQL ist eine Abfrage, denn du bekommst immer eine Antwort vom DBMS. Es gibt keine Anfrage im SQL.

              Kommentar


              • #8
                Na da hat aber mal jemand lange gebraucht um sich eine fiese Antwort auszudenken... Mir wurde fast schon wieder langweilig.
                Aber hey ... hat sich ja gelohnt. Ich habe fast gelacht. Aber nur fast.

                Na, ich bin von Natur aus lustig,
                achso... hab noch kein Bild von Dir gesehen. Aber wenn Du das sagst wird's schon stimmen .

                Die Abfrage stammt von mir. Wollte eigentlich nur sagen dass ein Mensch der des logischen Denkens mächtig ist die SQL Abfrage auch nicht formulieren kann. Dazu braucht man wohl ein paar Infos bzgl. SQL.

                falscher Vergleich, also doch sehr unfähig bist du.
                Na, na ... der Satz ist grammatikalisch aber noch ausbaufähig was? Das musst Du noch ein wenig üben... .Bei Bedarf kannst Du mich fragen
                Ich kenne (kannte ... thx!) zwar nicht den Unterschied zwischen einer Anfrage und einer Abfrage, dafür habe ich die Basics drauf.
                Oh ... na vielleicht war das ein Ausrutscher ... hmm ...
                Was steht denn hier ?

                Woher soll ich denn wissen, dass du sie irgendwoher geklaut hast , denn wenn jemand im Stande ist ein Sub-Select zusammen zu kriegen, aber mit der 2. geforderten Bedingung nichts anfangen kann, ist mehr als ungewöhnlich. OK, sorry, jetzt weiss ich auch, dass die Überlegung von der 2. Bedingung auch nicht von dir stammt, das erklärt sich natürlich alles .
                Ich könnte noch zwei Beispiele aufzeigen, aber ich möchte keinen Roman schreiben und ...
                Ich bitte dich, du sollst zu mindest realistisch genug sein, um es zu erkennen



                in deinem Fall ist es ratsam, denn ist es wirklich so schwer eine 2. Bedingung unterzubringen, wo du schon das wesentliche hast?
                Offensichtlich war es für mich zu schwer...
                Ich kann so etwas zugeben. Kein Problem. Ich finde es nur so lächerlich, dass Du mich hier wegen so einer Lapalie schief anmachen willst.
                Ich stell mir folgendes Szenario vor: Jemand postet sein Problem inklusive seines Codes im Forum und vergisst ein Semikolon (für Dich: Strichpunkt) am Ende seiner Anweisung.
                Deine wahrscheinlichste Antwort: "Ich mach Dich jetzt fertig ..."
                damit du dich etwas mehr mit der Materie beschäftigst, anstatt bei jedem Sch**ß eine triviale Frage rein postest.
                (Ich hatte wirklich vor kein weiteres Beispiel zu bringen, aber das musste sein...)

                Nachdem Du so gerne mit Deinem RTFM Kürzel herumhantierst:
                Nimm Dir mal dieses hier zu Herzen: LYFL hat was mit Deinen Sprachkünsten zu tun... nur als Tip von mir.

                Kommentar


                • #9
                  Original geschrieben von Wassim

                  Nachdem Du so gerne mit Deinem RTFM Kürzel herumhantierst:
                  Nimm Dir mal dieses hier zu Herzen: LYFL hat was mit Deinen Sprachkünsten zu tun... nur als Tip von mir.
                  ab gesehen davon, dass ich ein Ausländer bin, der nicht in Deutschland geboren und aufgewachsen ist, bin ich recht gut zufrieden mit meiner deutschen Sprachkenntnisse . Meinetwegen können wir gerne auf eine andere Sprache umsteigen, wenn das Forum dazu geeignet ist, sonst kann ich dir auch Foren zeigen, wo wir die Möglichkeit haben, in der von mir vorgeschlagenen Sprache zu kommunizieren, da du offensichtlich Probleme hast, das gepostete in deutsch vernünftig zu interpretieren. Es stehen dir zur Auswahl
                  - Chinesisch
                  - Japanisch
                  - Thailändisch
                  - Laotisch
                  - Vietnamesisch
                  - und ... Deutsch wie bisher
                  Ach ja, IMHO wäre die P.I.S.A Studie besser abgeschnitten, hätte man die in Deutschland lebenden Ausländer einbezogen

                  Kommentar


                  • #10
                    Überraschung!!!

                    Ich stamme auch nicht aus Deutschland.
                    Nur zur Info.

                    da du offensichtlich Probleme hast, das gepostete in deutsch vernünftig zu interpretieren.
                    Nein, das siehst Du falsch... Du tust Dir schwer Dich mitzuteilen.
                    Pass auf:

                    So spaßig es auch ist sich auf diesem Forum anzugiften würde ich vorschlagen dass wir stattdessen anderen Usern nützliche Tips geben wenn Sie welche brauchen...
                    Zugegeben ... in diesem Forum gibst Du sicher die besseren Tips
                    , aber egal.

                    Was sagst Du? Ich versuche in SQL ein wenig smarter zu werden, und Du versuchst nicht gleich auszuticken wenn jemand ein leichteres Problem postet.
                    Im übrigen glaube ich immer noch dass meine Abfrage nicht sehr einfach ist, da ich nirgendwo auf das Attribut 'test' zugreifen kann.
                    In dem Sinne.

                    Servus!

                    Kommentar


                    • #11
                      gut, Vorschlag angenommen

                      Tipp zu deinem Problem: Sollte dir alles nichts helfen, ist Cursor immer noch als letzter Ausweg nützlich, und du kommst garantiert zur Lösung. Vorsicht, bei MSSQL bremst Cursor die Leitsung des Servers dratisch ab, wenn man damit übertreibt, ob es auch bei PostgreSQL der Fall ist ... weil ich noch nicht ausprobiert habe.

                      Gruß

                      Kommentar


                      • #12
                        Klasse!

                        Das werde ich sofort ausprobieren sobald ich dazu komme.
                        Ich sag Dir dann Bescheid ob Cursor auch bei PostgreSQL die Leistung des Servers bremst.

                        Danke für den Vorschlag

                        Viele Grüße,

                        Wassim

                        Kommentar

                        Lädt...
                        X