Frage zu JOIN - ist das überhaupt möglich

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

  • Frage zu JOIN - ist das überhaupt möglich

    HI @all

    ich steh vor einem PRoblem und finde dafür keine Lösung...auch nicht nach dem sticky thread hier über JOINS und auch nicht in meinem dicken Buch über SQL hier zuhause...gibt es dafür überhaupt eine Möglichkeit, dass über eine DB-Abfrage zu lösen:

    ich habe eine Tabelle a mit ungefähr 500 einträgen. In einer weiteren Tabelle b habe ich einige von den 500 eingetragen. Jetzt möchte ich alle Einträge aus a herauslesen, deren ids nicht in b enthalten sind.

    Eigentlich sollte das doch eine einfache abfrage sein:

    SELECT
    a.id as vid
    FROM
    tabellea a LEFT JOIN tabelleb b ON a.id = b.vid

    Wenn ich das jetzt umschreibe in

    SELECT
    a.id as vid
    FROM
    tabellea a LEFT JOIN tabelleb b ON a.id != b.vid

    dann werden alle Daten aus tabellea 3fach (oder mehr - je nachdem wieviele einträge in tabelleb vorhanden sind) ausgelesen. Wo liegt der Fehler... kann man das überhaupt abfragen...?

    cya CrazyPip

  • #2
    Code:
    SELECT
        a.id
    FROM
        tabellea a
            LEFT JOIN tabelleb b
              ON  ( a.id = b.id AND b.id IS NULL )
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      hmm nope hat nicht funktioniert...
      wobei wenn man das b.vid IS NULL weglässt, kommt die gleiche anzahl ids raus, wie wenn man die Abfrage eben nur mit

      LEFT JOIN tabelleb b
      ON a.id = b.id

      bildet, dann wird nämlich jeder Datensatz ausgelesen. An was kann das liegen?

      in der tabelleB stehen nur ein paar datensätze...es gibt nicht zu jeder id aus tabelleA einen eintrag in TabelleB.

      cya CrazyPip

      EDIT:
      ausserdem heisst es ON a.id = b.vid ...das die FElder verschieden heissen solte eigentlich nichts an dem Abfrageergebnis ändern
      Zuletzt geändert von CrazyPip; 07.03.2006, 20:56.

      Kommentar


      • #4
        PHP-Code:
        SELECT
            a
        .id
        FROM
            tabellea a
                LEFT JOIN tabelleb b
                  ON  a
        .id b.vid 
        WHERE b
        .vid IS NULL 

        Kommentar


        • #5
          vielen dank euch beiden...

          @asp
          nach deiner Abfrage funktioniert das ganze endlich

          cya CrazyPip

          Kommentar


          • #6
            Nur so nebenbei...

            Sticky thread - alle zahlen auslesen, zu denen das quadrat nicht vorhanden ist
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              ich hatte den sticky schon gelesen... und ich habs auch schon probiert gehabt...nur als ichs dann nicht hinbekommen hab, wollte ich halt nachfragen...

              cya CrazyPip

              Kommentar

              Lädt...
              X