Problem mehrere Tabellen zu verknüpfen

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

  • Problem mehrere Tabellen zu verknüpfen

    Hi zusammen,

    habe folgendes Problem, ich habe jetzt einige tutorials durch und versucht 2 Tabellen mit einander zu verknüpfen. Hat auch immer wunderbar funktioniert aber diesmal komm ich nicht dahinter wo das Problem steckt.

    Folgendes will ich erreichen:

    Ich habe eine Tabelle mit Seiten "v_sites", diese Seiten sollen aber nur gelistet werden wenn User Peter auch Coins zur Verfügung hat -> "v_user".

    Coins werden in Tabelle "v_user" gespeichert.

    Kann mir wer helfen auf den Punkt zu kommen ?

    So siehts bisher aus:
    Code:
    $number = $wpdb->get_results("SELECT * FROM v2_sites WHERE ZocCpc >= '2' ORDER BY ZocCpc DESC LIMIT 0, 20");
    Der ZocCpc ist die Punktzahl die man dafür bekommt wenn ein andrer User drauf klickt, also nicht so wichtig.
    Habe es mit Left joins probiert komme aber net damit vorran.
    http://www.zocialon.com

  • #2
    Habe es mit Left joins probiert komme aber net damit vorran.
    Zeig doch mal. Macht sich immer gut um die Hilfsbereitschaft der Leute hier zu stärken. Und eine halbwegs brauchbare Tabellenstruktur mit Beispieldaten solltest du auch posten.

    Kommentar


    • #3
      $number = $wpdb->get_results("
      SELECT
      s.*
      FROM
      v2_sites
      LEFT JOIN (
      SELECT
      coins
      FROM
      v2_accounts
      WHERE
      coins <= '2'
      AND s.UserID = a.UserID
      ) AS a
      ON s.UserID = a.UserID
      WHERE
      a.coins <= '2'");

      Das ist jetzt grade mein 10er Versuch, ich steh schon langsam aufm Schlauch ;/
      Sollte ich evtl vorher den User auf die Coins prüfen oder geht das doch wie geplant mit einem left join ?
      http://www.zocialon.com

      Kommentar


      • #4
        Hallo,

        diese Join-Syntax steht so in keinem Lehrbuch und das Subselect ist nicht nur nicht notwendig, sondern einfach falsch. Wenn man zwei Tabellen (t1 und t2) über eine bestimmte Spalte (z. B. t1.t2_id verweist auf t2.id) left joinen will, sieht das ganz einfach so aus:

        Code:
        SELECT
            t1.id,
            t1.s1,
            t1.s2,
            t2.id,
            t2.s1,
            t2.s2,
            t2.s3
        FROM t1
        LEFT JOIN t2 ON t1.t2_id = t2.id
        WHERE t2.s3 < 42
        Hinweis: die Tabellen- und Spaltennamen im Beispiel sind nur durchnummeriert und sollten in Wirklichkeit unbedingt aussagekräftige Namen tragen.

        Gruß,

        Amica
        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Ich danke dir Amica, jetzt habe ich es auch endgültig verstanden mit den Left Joins

          Vielen Dank !
          http://www.zocialon.com

          Kommentar

          Lädt...
          X