Join

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

  • #16
    Original geschrieben von asp2php
    Ähm...

    JOIN reagiert nur auf ON-Bedingung, WHERE filtert das gesamte Ergebnis
    (was JOIN liefert)

    das mit dem left und right muss du mir noch mal erklären, ich verstehe nur
    Bahnhof
    left und right ist inprinzip das selbe wie inner join, nur dass eben eine die DS einer tabelle angibt. ?!

    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
    sondern mit den Augen das Manual zu lesen.

    Kommentar


    • #17
      PHP-Code:
      FROM 
                 Forum_Report a INNER JOIN zonyuser b ON
                 a
      .verbrecher_id=b.id 
                 INNER JOIN Posts c ON 
      ... 

      so. und Spaltenalias fehlt noch.

      Kommentar


      • #18
        Original geschrieben von asp2php
        PHP-Code:
        FROM 
                   Forum_Report a INNER JOIN zonyuser b ON
                   a
        .verbrecher_id=b.id 
                   INNER JOIN Posts c ON 
        ... 

        so. und Spaltenalias fehlt noch.
        Danke, ich schau vielleicht später nochmal rein bzw. am sonntagabend. ich werde jetzt meinen kurzurlaub genießen, vielleicht hab ich dann einen klareren kopf

        trotzdem danke!! ich werd weiter machen, und nicht aufgeben

        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
        sondern mit den Augen das Manual zu lesen.

        Kommentar


        • #19
          Original geschrieben von asp2php
          PHP-Code:
          FROM 
                     Forum_Report a INNER JOIN zonyuser b ON
                     a
          .verbrecher_id=b.id 
                     INNER JOIN Posts c ON 
          ... 

          so. und Spaltenalias fehlt noch.

          ist c.id gemeint? ( also c.id as blah ) ?

          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
          sondern mit den Augen das Manual zu lesen.

          Kommentar


          • #20
            was genau, ist jetzt hieran noch falsch??

            ( keine ausgabe )

            PHP-Code:


                $result 
            mysql_query "SELECT a.id,
                                                a.melder_id,
                                                a.verbrecher_id as a_verbrecher,
                                                a.comment,
                                                a.posting_id as a_posting,
                                                a.forum_id,
                                                a.zeit as a_zeit,
                                                a.melder_ip,
                                                a.melder_browser,
                                                a.nickname_fr,
                                                b.id,
                                                b.nickname as melder_name,
                                                c.id,
                                                c.nick,
                                                c.ip,
                                                c.browser,
                                                c.zeit1,
                                                c.zeit2,
                                                c.kategorie,
                                                c.area,
                                                c.forum_underid,
                                                c.beitrag,
                                                c.pin,
                                                c.thema,
                                                c.who,
                                                c.threadid
                                   FROM
                                            Forum_Report a INNER JOIN zonyuser b ON
                                            a.verbrecher_id=b.id
                                            Forum_Report a INNER JOIN Posts c ON a.posting_id=c.id
                                   WHERE
                                            a.forum_id=
            $frm
                                   ORDER BY
                                           a_zeit"
            );
                                         while ( 
            $userdaten mysql_fetch_array $result ) ) {
              echo 
            "
                <tr>
                  <td>
                     
            $userdaten[melder_name] meldet folgenden Beitrag:
                  </td>
                </tr>

            "
            ;
                                                                                              } 

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #21
              PHP-Code:
               {
                echo 
              "
                  <tr>
                    <td>
                       "
              .$userdaten['melder_name']." meldet folgenden Beitrag:
                    </td>
                  </tr>

              "
              ;
                                                                                                } 
              Die Zeit hat ihre Kinder längst gefressen

              Kommentar


              • #22
                Original geschrieben von derHund
                PHP-Code:
                 {
                  echo 
                "
                    <tr>
                      <td>
                         "
                .$userdaten['melder_name']." meldet folgenden Beitrag:
                      </td>
                    </tr>

                "
                ;
                                                                                                  } 

                thx, aber irgendwas stimmt mit dem join nicht... ap hatte mir ja schon sehr geholfen, aber irgendwas passt da ja nicht, und ich komm einfach nicht drauf, und da dies mein erster JOIN ist mit meinem Beispiel an meiner website wäre es einfach gut, wenn mir das jemand richtig vollenden würde also den JOIN weil dann die botschaft besser vermittelt an mich kommt, weil es ja mein beispiel ist und somit lässt sich das auch besser für mich nachvollziehen.. hier noch kurz die schemen für die DB

                CREATE TABLE Forum_Report (
                id int(10) NOT NULL auto_increment,
                melder_id int(10) NOT NULL default '0',
                verbrecher_id int(10) NOT NULL default '0',
                comment longtext NOT NULL,
                posting_id int(10) NOT NULL default '0',
                forum_id int(10) NOT NULL default '0',
                zeit timestamp(14) NOT NULL,
                melder_ip varchar(50) NOT NULL default 'no scan',
                melder_browser varchar(100) NOT NULL default 'no scan',
                nickname_fr varchar(20) NOT NULL default '',
                PRIMARY KEY (id),
                UNIQUE KEY id (id)
                ) TYPE=MyISAM;
                # --------------------------------------------------------

                #
                # Tabellenstruktur für Tabelle `Posts`
                #

                CREATE TABLE Posts (
                id int(10) NOT NULL auto_increment,
                nick varchar(20) NOT NULL default '',
                ip varchar(50) NOT NULL default '',
                browser varchar(100) NOT NULL default '',
                zeit1 varchar(50) NOT NULL default '',
                zeit2 int(25) NOT NULL default '0',
                kategorie int(10) NOT NULL default '0',
                area int(10) NOT NULL default '0',
                forum_underid int(10) NOT NULL default '0',
                beitrag longtext NOT NULL,
                pin int(1) NOT NULL default '0',
                thema varchar(255) NOT NULL default '',
                who int(1) NOT NULL default '3',
                threadid tinyint(4) NOT NULL default '0',
                PRIMARY KEY (id),
                UNIQUE KEY id (id)
                ) TYPE=MyISAM;
                # --------------------------------------------------------

                #
                # Tabellenstruktur für Tabelle `zonyuser`
                #

                CREATE TABLE zonyuser (
                id int(10) NOT NULL auto_increment,
                nickname varchar(17) NOT NULL default '',
                PRIMARY KEY (id),
                UNIQUE KEY nickname (nickname),
                UNIQUE KEY email (email)
                ) TYPE=MyISAM;

                Die Tabelle für zonyuser hab ich gekürzt ( aus übersicht ) die restlichen spalten sind aber alles NOT NULL

                Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                sondern mit den Augen das Manual zu lesen.

                Kommentar


                • #23
                  wer lesen kann ist klar im Vorteil

                  lese bitte mein letztes Posting nochmal

                  Kommentar


                  • #24
                    Original geschrieben von asp2php
                    wer lesen kann ist klar im Vorteil

                    lese bitte mein letztes Posting nochmal
                    *les*

                    ich blick trotzdem nicht worauf du anspielst.. entweder bin ich zu doof oder sonst was...

                    quäääääl mich halt +quängel+

                    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                    sondern mit den Augen das Manual zu lesen.

                    Kommentar


                    • #25
                      Tipp: du hast eine Tabelle zu viel in from anngegeben (vgl. dein und mein posting)

                      Empfehlung: bitte SQL-Syntax gründlicher lernen.

                      Kommentar


                      • #26
                        PHP-Code:

                        <?

                                               SELECT a.id,
                                                            a.melder_id,
                                                            a.verbrecher_id as a_verbrecher,
                                                            a.comment,
                                                            a.posting_id as a_posting,
                                                            a.forum_id,
                                                            a.zeit as a_zeit,
                                                            a.melder_ip,
                                                            a.melder_browser,
                                                            a.nickname_fr,
                                                            b.id,
                                                            b.nickname,
                                                            c.id, 
                                                            c.nick,
                                                            c.ip,
                                                            c.browser,
                                                            c.zeit1,
                                                            c.zeit2,
                                                            c.kategorie,
                                                            c.area,
                                                            c.forum_underid,
                                                            c.beitrag,
                                                            c.pin,
                                                            c.thema,
                                                            c.who,
                                                            c.threadid
                                               FROM 
                                                        Forum_Report a INNER JOIN zonyuser b ON
                                                        a.verbrecher_id=b.id 
                                                        INNER JOIN Posts c ON a.posting_id=c.id
                                               WHERE 
                                                        a.forum_id=$_GET[f]
                                               ORDER BY 
                                                       a_zeit
                        hmm.. noch ein fehler ? *verzweifel*

                        Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                        sondern mit den Augen das Manual zu lesen.

                        Kommentar


                        • #27
                          da meine Glaskugel z.Z. in der Reinigung ist, wäre es hilfreich (für dich),
                          wenn du die Fehlermeldung auch angibt.

                          Ausserdem gibt es a.id, b.id, c.id, welche einfach als id zurückgegeben wird,
                          dass du sie nur über den Index und nicht über den Namen ansprechen
                          kann, weisst du das?

                          Kommentar


                          • #28
                            Original geschrieben von asp2php
                            da meine Glaskugel z.Z. in der Reinigung ist, wäre es hilfreich (für dich),
                            wenn du die Fehlermeldung auch angibt.

                            Ausserdem gibt es a.id, b.id, c.id, welche einfach als id zurückgegeben wird,
                            dass du sie nur über den Index und nicht über den Namen ansprechen
                            kann, weisst du das?
                            jetzt mal nur so als einfacheres beispiel für mich!

                            angenommen ich hab 2 tabellen abfragen

                            einmal ->

                            PHP-Code:

                            $q2
                            "SELECT
                                          id_fa,
                                          id_famaster,
                                          id_faslave,
                                          id_aczept,
                                          wer
                                   FROM
                                          FAs
                                   WHERE
                                          id_farfa='
                            $id_id'
                                      AND id_aczept ='1'

                                      OR id_famaster='
                            $id_id'
                                      AND id_aczept ='1'

                                   ORDER BY id_fa"

                            und ->

                            PHP-Code:


                            $result 
                            mysql_query "SELECT id,
                                                            nickname,
                                                            online
                                                     FROM   zonyuser
                                                     WHERE  id='"
                            .$userdaten['id_famaster']."'
                                                     LIMIT 1" 
                            ); 

                            Würde das jetzt grob überflogen so aussehen !?

                            PHP-Code:



                            $q2
                            "SELECT
                                          a.id_fa,
                                          a.id_famaster,
                                          a.id_faslave,
                                          a.id_aczept,
                                          a.wer,
                                          b.id,
                                          b.nickname
                                   FROM
                                          FAs a INNER JOIN zonyuser b ON
                                                            a.id_famaster=b.id
                                   WHERE
                                          id_farfa='
                            $id_id'
                                      AND id_aczept ='1'

                                      OR id_famaster='
                            $id_id'
                                      AND id_aczept ='1'
                                   ORDER BY id_fa"

                            Erzielen will ich, dass die datensätze von tabelle 1 (FAs (freunschaften) )
                            von user mit der $id_id herausgelesen werden.

                            Damit ein Name wiedergegeben werden kann, wird tabelle 2 ( user ) mit der id von tabelle 1 abgefragt.


                            Es soll durch

                            WHERE
                            id_farfa='$id_id'
                            AND id_aczept ='1'

                            akzeptierte Freunschaftsanträge aufgelistet werden, die von fremden usern gestellt wurden.

                            und durch

                            OR id_famaster='$id_id'
                            AND id_aczept ='1'

                            akzeptierte Freunschaftsanträge aufgelistet werden, die ein user selbst dem anderen user gestellt hat .


                            durch meine 2 mal abfragen, funktioniert das einwandfrei.. aber würde das jetzt so aussehen?

                            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                            sondern mit den Augen das Manual zu lesen.

                            Kommentar


                            • #29
                              ein generelles Problem habt ihr Newbies immer, nämlich, ihr fragt, ohne
                              selbst probiert zu haben, und das stört mich und auch die meistens hier.

                              OK. Folgende Empfehlungen an dich (abgesehen von obigem Punkt ):
                              1. sobald du mit Datenbanken arbeitest, musst du AND, OR und ... gut bis
                              sehr gut beherrschen. Vor allem Klammer richtig setzen.
                              2. formuliere deine Fragen auch so wie du es meinst
                              3. lese bitte dein Posting durch, bevor du abschickst.

                              Weil:

                              1. where id_farfa='$id_id' AND id_aczept ='1' OR id_famaster='$id_id' AND id_aczept ='1'
                              was willst du hier haben?
                              2. du sagst: Es soll durch ... und durch
                              aber du schreibst OR unmittelbar danach. Was denn nun AND oder OR?

                              Nun zu Join: (ohne deine where-Klausel)

                              select ... from ... a inner join ... b on a.spaltediemitbvernknüpftwerdensoll=
                              b.spaltedieaufaverknüpftwerdensoll

                              Alles klar ?

                              Kommentar


                              • #30
                                Original geschrieben von asp2php
                                Was denn nun AND oder OR?

                                geht das nicht wie in einer IF schleife?

                                also das ich sage

                                bedingung1 == 1 AND bedingung2 ==1

                                OR

                                bedingung3 == 1 AND bedingung4 == 1


                                wenn also bedingung1 und bedingung2 das nach == erfüllt,
                                oder wenn bedingung3 und bedingung4 das nach == erfüllt,

                                dann { }

                                laut deiner aussage, geht das bei einer datenbankfrage also so nicht ??

                                Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                                sondern mit den Augen das Manual zu lesen.

                                Kommentar

                                Lädt...
                                X