kostenloser Webspace werbefrei: lima-city


SQL Abfrage mit zwei Tabellen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    ghostrider

    Kostenloser Webspace von ghostrider

    ghostrider hat kostenlosen Webspace.

    Hallo Leutz,

    Ich habe mir mal ein eigenes forum gebastelt welches auch so einwandfrei funktioniert jedoch habe ich folgendes Problem wenn ich die Themen nach den letzten Beiträge ordnen will zeigt er mir das Thema für jeden Beitrag an sprich 2 Beiträge in einem Thema=2 mal das Thema in der Übersicht momentan habe ich folgende Abfrage drin:
    SELECT * FROM board_topics LEFT JOIN board_posts ON board_topics.topic_id = board_posts.topic_id WHERE board_topics.topic_id=board_posts.topic_id AND board_topics.forum_id=\'$forum_id\' ORDER BY board_posts.post_time DESC

    Weil ich hatte gegooglet wie man das bei einer anderen Tabelle machen könnte dort kam Left Join und dann habe ich mir das daraus gebastelt. Könntet ihr mir bitte helfen

    mfG
    Chris

    PS: Ja sry ist mir jetz erst aufgefallen das der Titel verkehrt ist es muss natürlich Tabelle und nicht Datenbank heißen...

    Beitrag geändert: 22.12.2007 12:12:46 von ghostrider
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. a**************s

    Ich weiß nicht ob ich dich richtig verstehe aber vielleicht hilft ein \"LIMIT 1\" in der SQL Abfrage...
  4. Hallo,

    sorry aber deine Frage ist nicht ganz eindeutig...

    Deine SQL Abfrage

    SELECT * FROM board_topics LEFT JOIN board_posts ON board_topics.topic_id = board_posts.topic_id WHERE board_topics.topic_id=board_posts.topic_id AND board_topics.forum_id=\'$forum_id\' ORDER BY board_posts.post_time DESC

    gibt folgendes aus:
    Listet ALLE topics auf mit dem dazugehörigen Thema d.h. sind zu einem Topic mehrere Themen vorhanden (Normalfall) werden die Titel der Topics doppelt aufgelistet.
    Die Tabelle sieht dann in etwa so aus...
    topic.id topic.name thema.id thema.topicid thema.name
    1 Testtopic 1 1 das erste Thema1
    1 Testtopic 2 1 das zweite Thema1
    2 Zweittopic 3 2 erste Thema2
    2 Zweittopic 4 2 zweite Thema2

    Wie liest du denn die Themen aus?
    ...willst du zuerst nur die Topics auslesen und danach die Themen oder nur die Themen nach Topic sortiert und wenn ein neues topic anfängt, dass du dann das neue Topic ausgibst?

    Grüßle
  5. e********l

    Das folgende sollte das richtige Ergebnis bringen, wenn du wirklich nur die Themenübersicht im jeweiligen Forum anzeigen willst. Falls du auch auf gelöschte Beiträge zugreifen willst änder das INNER JOIN in ein LEFT OUTER JOIN um. Und Code immer schön einrücken ;)

    SELECT  *
    FROM    board_topics AS bt
            INNER JOIN      board_posts AS bp
                    ON      bt.topic_id = bp.topic_id
    WHERE   bp.forum_id = \'$forum_id\'
    ORDER BY        pb.post_time DESC

  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!