1 Haupt und 3 Untertabellen abfragen

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

  • 1 Haupt und 3 Untertabellen abfragen

    Hy,
    hoffe ihr könnt einem mySQL Newbie helfen:
    Ich will einen Veranstaltungskalender 3 sprachig basteln.
    Habe eine Haupttabelle (topic), in welcher das Datum & sprachunabhänige Felder gespeichert werden
    und 3 tabellen für deutsche, englische und spanische Beschreibung der Veranstaltung.
    Es soll nicht für jede Veranstaltung Einträge in allen 3 Sprachen geben.
    Klappt soweit, aber wenn ich eine Übersicht für die Veranstaltungen abfragen will komme ich nicht weiter:
    PHP-Code:
        $sql "SELECT ";
        
    $sql .=  "topic.id, topic.datum, topic.online,  ";//Haupttabelle
        
    $sql .= "de.id as id_de, de.topicId as topicId_de, ";//deutsch
        
    $sql .= "de.title as title_de,   ";
        
    $sql .= "de.beschreibung as beschreibung_de,  ";
        
    $sql .= "en.id as id_en, en.topicId as topicId_en, ";//englisch
        
    $sql .= "en.title as title_en ,  ";
        
    $sql .= "en.beschreibung as beschreibung_en,  ";
        
    $sql .= "span.id as id_span, span.topicId as topicId_span, ";//spanisch
        
    $sql .= "span.title as title_span ,  ";
        
    $sql .= "span.beschreibung as beschreibung_span  ";
        
    $sql .= "FROM topic, de, en, span ";
        
    $sql .= "WHERE ";
        
    $sql .= "topic.id = de.topicId ";
        
    $sql .= "or ";
        
    $sql .= "topic.id = en.topicId ";
        
    $sql .= "or ";
        
    $sql .= "topic.id = span.topicId "
    liefert mir jeden einen Eintrag für topic mehrfach, wenn 2
    und mehr Sprachen für eine Veranstaltung eingetragen sind (ist ja auch logisch)
    Was für eine Tabellen verknüpfung muß ich anwenden, um ein Ergebnis in folgender Form zu bekommen:
    PHP-Code:
    id
    datum
    online
    id_de
    title_de
    beschreibung_de
    id_en
    title_en
    beschreibung_en
    id_span
    title_span
    beschreibung_span 
    hab's schon mit inner / outer / left join versucht, komme aber nicht weiter...
    Würde mir schon reichen, wenn mir einer sagen könnte, wo im mySQL Handbuch ich noch mal nachlesen muß.....
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

  • #2
    Habs gefunden:
    PHP-Code:
    FROM topic LEFT JOIN de ON de.topicId topic.id  LEFT JOIN  en ON en.topicId topic.id //etc 
    "I don't want to belong to any club that would accept me as a member."

    Groucho Marx

    Kommentar

    Lädt...
    X