Naberius Geschrieben 1. Juni 2001 Teilen Geschrieben 1. Juni 2001 Hallo Forum, wer schafft es mir die Sache mit den Joins so zu erklären das ich es verstehe? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
timuwine Geschrieben 1. Juni 2001 Teilen Geschrieben 1. Juni 2001 ui jui jui... hmmm warte lass mich mal überlegen.. was heisste den "to join" übersetzt du hast zwei Tabellen in denen du Informationen suchst und über gewisse bedingungen dir die Richtigen Ds raussuchen willst. Da es sich dabei um eine raltionale DB handelt haben die jeweiligen Tabellen beziehungen zueinander, d. h die Tabellen enthalten schlüssel die dei jeweiligen Ds als eindeutig identifizieren. das ganze versuchst in dem jeweiligen select auch so darzustellen, so dass du in dem ergebniss deiner suche keine kreuzprodukte bekommst. nehmen wir an du hast eine Tabelle mit Namen und noch eine mit Adressen. In diesem Beispiel hat jeder name auch nur eine Adresse. D.H für harry hirsch mit dem schlüssel "1" existiert in der anderen tabelle (adresse) auch ein ds mit diesem Schlüssel 1 (z. b harryhirschstrasse 12). Um jetz in dem ergebniss nicht harry hirsch mit hundert adressen (kreuzprodukt) zu bekommen musst du die beiden Tabellen RICHTIG joinen. und das über die jeweiligen schlüssel. select namen.name , adressen.str_hausnummer from namen, adressen where namen.schlüssel = adressen.schlüssel <--richtiger schlüssel join and namen.name = 'harry hirsch' <-- indentifiezierender join, weil du ja auch nur harry hirsch haben willst du bekommst hier einen ds mit namen und der jeweiligen adresse von harry würdest du den letzen join weglassen würdest du alle ds bekommen aus beiden adressen in der regel haben aber viele tabellen mehrere schlüssel um die relation anders darzustellen. das sollte der inner join gewesen sien so nehmen wir aber mal an es existiert keine adresse für harry , dann würde der obere select KEIN ergebnis liefern. wenn du aber harry trotzdem angezeigt bekommen willst, dann gibt es den outer join, der auch ein ergebniss liefert wenn eine bedingung null ist select namen.name , adressen.str_hausnummer from namen, adressen where namen.schlüssel = adressen.schlüssel(+) <---outer join and namen.name = 'harry hirsch' ergebniss würde sein harry hirsch ohne adresse. Man muss allerdings dazu sagen, dass diese schlüssel nicht null sein können. naja ich hoffe ich habe ein BISSCHEN weitergeholfen.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Technician Geschrieben 1. Juni 2001 Teilen Geschrieben 1. Juni 2001 Hi Naberius! Ich habe unter "Datenbankbegriffe erklärt!" einen Link gepostet; hier ist er nochmal: http://v.hbi-stuttgart.de/~riekert/lehre/db-kelz/ Auf der Seite werden alle Datenbankbegriffe erklärt - auch das mit den Joins (die Joins stehen auf der Seite als Links ganz unten) Das wird dir sicherlich helfen Gruß, Technician Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Naberius Geschrieben 1. Juni 2001 Autor Teilen Geschrieben 1. Juni 2001 Danke für die ausführliche Erklärung und den Link!! Ich glaube ich habe es wirklich kapiert. Viele Grüße Naberius Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.