ich habe eine Problem mit mysql. Ich habe einige Tabellen angelegt und
möchte die Inhalte ausgeben. Folgendes passiert bei dem SELECT-Befehl;
SELECT ORT.ORT, GATTUNG.ART FROM ORT, GATTUNG;
±--------±-------+
| ORT | ART |
±--------±-------+
| Zimmer | Möbel |
| Tisch | Möbel |
| Schrank | Möbel |
| Zimmer | Sun |
| Tisch | Sun |
| Schrank | Sun |
| Zimmer | defekt |
| Tisch | defekt |
| Schrank | defekt |
| Zimmer | Sun |
| Tisch | Sun |
| Schrank | Sun |
±--------±-------+
12 rows in set (0.01 sec)
wie ihr seht, werden die Inhalte mehrmals ausgegeben. Mir ist klar, dass
das daran liegt, dass ich zwischen den Tabellen keine Beziehung (z.B mit
WHERE) aufgebaut habe. Ich habe das Problem, dass die einzige Tabelle,
mit der ich eine Beziehung aufbauen könnte, nicht mit ausgeben wird.
Ausserdem tauchen die Einträge in dieser Tabelle auch öfters als nur
einmal auf, d.h es nützt mir auch nichts, wenn ich diese Tablle mit
ausgebe. Ich benötige also einen Befehl, mit dem es mir möglich ist, eine
künstliche Beziehung zwischen den Tabellen aufzubauen, um alle Einträge
nur einmal auszugeben (die Tabellen besitzen eine Spalte IDENT, d.h. man
könnte danach prüfen). Ich hab das ganze schon mit dem JOIN-Befehl
probiert, allerdings hab ich gehört, dass dieser Befehl für dieses Problem
ungeignet sein soll.
Auch Hi
Was möchtest Du denn genau selektieren??
Hast Du evtl einen Schlüssel in den jeweiligen Tabellen der auf den ORT / ART zurückschließen läßt ???
Dann würde das evtl so aussehen.
select a.ort, b.art
from ort a, gattung b
where a.schlüssel = b.schlüssel
Gruß
Lemod
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Hi,
LeMoDs Antwort ist korrekt. zusätzlich würde ich Dir empfehlen, Dir einen Überblick über das relationale Modell im allgemeinen und über SQL in speziellen zu verschaffen. Eine kurze Einführung findest Du hier: http://print-www.informatik.uni-hamburg.de/Dokumenta…
jetzt hab ich mich selber eingeloggt. Der Benutzer vorher war mein Vater, den ich gebeten habe, meine Frage hier reinzustellen.
Ich habe schon einen Schlüssel. Und zwar IDENT. Dieser wird automatisch hochgezählt, wenn ich einen neuen Datensatz eintrage. Das Problem ist nur, wenn ich die beiden Tabellen mit diesem Schlüssel vergleiche und die beiden Tabellen unterschiedlich viele Datensätze haben, dann werden genau soviele Datensätze ausgegeben, wie in der Tabelle mit der geringsten Anzahl an Datensätzen enthalten sind.
Ich hab mal was von einem Index gehört. Könnte mir sowas helfen. Ich hab leider keine Ahnung, wie ich so einen Index anwende kann.
Flo
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]