Maschinist
Cadet 2nd Year
- Registriert
- Okt. 2002
- Beiträge
- 17
Hallo,
mir fehlt ein wenig das Verständnis für die Lösung folgenden mySQL-Problems:
Ich will 2 Tabellen "joinen" und das Ergebnis in ein Textfile exportieren, wobei Tabelle 2 im Prinzip eine Teilmenge von Tabelle 1 darstellt.
Genauer (verkürzt):
- Tabelle 1 enthält Spalten "id", "interpret", "titel"
- Tabelle 2 enthält Spalten "nr","id", "nr_subtitel", "subtitel" (wobei "id" der Fremdschlüssel ist / "nr" hat keine Bedeutung, da nur interne SQL-Zähler)
Ich verknüpfe derzeit erfolglos wie folgt:
Das Ergebnis ist eine Textdatei, die mehr Daten als notwendig enthält;
nämlich für jeden "Subtitel" die Einträge aus Tabelle1 zur enstprechenden ID.
Mit anderen Worten: für 'n' Subtitel werden 'n' Spalten angelegt, wobei jede zusätzlich "interpret" und "titel" enthält. (Nötig wäre dies jedoch nur einmal zu Beginn, dann sollen die 'n' Subtitel gelistet werden.)
Das Problem liegt wohl eindeutig an Verwendung von "Join". habe diverse Varianten probiert -> jeweils gleiches Problem.
Vielleicht ist jemand so nett und weist mich auf den Verknüpfungsfehler hin.
Gerne erläutere ich auch ausführlicher, falls zu kompliziert.
Danke erstmal.
Der Maschinist
mir fehlt ein wenig das Verständnis für die Lösung folgenden mySQL-Problems:
Ich will 2 Tabellen "joinen" und das Ergebnis in ein Textfile exportieren, wobei Tabelle 2 im Prinzip eine Teilmenge von Tabelle 1 darstellt.
Genauer (verkürzt):
- Tabelle 1 enthält Spalten "id", "interpret", "titel"
- Tabelle 2 enthält Spalten "nr","id", "nr_subtitel", "subtitel" (wobei "id" der Fremdschlüssel ist / "nr" hat keine Bedeutung, da nur interne SQL-Zähler)
Ich verknüpfe derzeit erfolglos wie folgt:
Code:
...
// $file: Textdatei, wo alles rein soll
// $id: eindeutige Nummer = Fremdschlüssel = Entität (Tab1:Tab2 = 1:N)
$sql = "SELECT ";
$sql.= "tab1.interpret AS interpret,";
$sql.= "tab1.titel AS titel, ";
$sql.= "tab2.nr_subtititel AS nr_subtitel,";
$sql.= "tab2.subtitel AS subtitel ";
$sql.= "INTO OUTFILE '$file' FIELDS TERMINATED BY '\n' ";
$sql.= "FROM tab1 ";
$sql.= "JOIN tab2 USING (id) ";
$sql.= "WHERE tab1.id = '$id'";
// export(): Funktion, die alles weitere erledigt...
$arr = export ($sql);
...
Das Ergebnis ist eine Textdatei, die mehr Daten als notwendig enthält;
nämlich für jeden "Subtitel" die Einträge aus Tabelle1 zur enstprechenden ID.
Mit anderen Worten: für 'n' Subtitel werden 'n' Spalten angelegt, wobei jede zusätzlich "interpret" und "titel" enthält. (Nötig wäre dies jedoch nur einmal zu Beginn, dann sollen die 'n' Subtitel gelistet werden.)
Das Problem liegt wohl eindeutig an Verwendung von "Join". habe diverse Varianten probiert -> jeweils gleiches Problem.
Vielleicht ist jemand so nett und weist mich auf den Verknüpfungsfehler hin.
Gerne erläutere ich auch ausführlicher, falls zu kompliziert.
Danke erstmal.
Der Maschinist