actionbrowser.com
mySQL -> 2 primärschlüssel in einem fremdschlüssel? Hiho. Ich habe ein kleines Problem. Zwei Tabellen habe ich, eine Tabelle ist eine Liste mit Software, es sind zwei Spalten: Einmal die CD Nummer und der Name der Software, der allerdings öfters vorkommt, da manche Software doppelt vorhanden ist. In einer zweiten Tabelle sind ebenfalls zwei Spalten, einmal der Name des Rechners und des darauf installierten Programms. Mysql zwei tabellen verbinden data. Und das ist das Problem. Die Spalte mit den installierten Programmen soll auf die Tabelle mit den Programmen verweisen und daraus den Namen beziehen. Allerdings möchte ich, dass in der zweiten Tabelle die Programme namentlich genannt werden und nicht nur deren IDs. Auf die Spalte mit den Programmnamen kann ich nicht verweisen, denn das ist kein Primärschlüssel und er hat auch nicht die Voraussetzungen, um einer zu sein. Wenn ich auf die ID verweise, dem Primärschlüssel, dann kriege ich nur die Nummer angezeigt. Einen Primary-Key-Verbund in der ersten Tabelle habe ich auch versucht, allerdings kann ich nur auf eine Spalte verweisen, und zwar die ID.
Ich wollte eigentlich nur darauf hinaus, dass es sich mit Triggern ggf. automatisieren läßt! Wobei ich FF zustimme: Design der DB nochmal überdenken Das ist sicher auch eine super Idee Habe mich damit gar nicht näher beschäftigt, da mir die Struktur so auf die Schnelle eh ziemlich unklar erschien und ich - offen gestanden - keine Lust zu längerern diesbezüglichen Disskussionen hatte VG Klaus
titel_ID Abfrage ausführen Wenn wir diese Abfrage ausführen, sehen wir, dass sich im Vergleich zur ersten die Anzahl der Ergebnisse – eben alle Mitarbeiter – nichts verändert hat. Lediglich die Spalte Titel ist hinzugekommen. Das war also gar nicht so schwer.
2. 3. 1 Die Grundform mit WHERE Mehrere Tabellen gleichzeitig verbinden Die Ausgabeliste ist in unserem Beispiel absolut wertlos, es zeigt aber, zu welchen Ergebnissen auch fehlerhafte WHERE -Anweisungen führen können. Es sei an dieser Stelle darauf hingewiesen, dass bei Verwendung der WHERE -Anweisung immer zuerst das Kreuzprodukt der zu verbindenden Tabellen gebildet wird und erst dann die Ergebnisse nach dem zu vergleichenden Attribut durchsucht und zusammengefasst werden. 2.3.1 Die Grundform mit WHERE – mehrere Tabellen verbinden. Das ist bei einer Abfrage mehrerer und sehr langer Tabellen zu beachten, da das leicht zu Performanceproblemen führen kann. Um dem aus dem Wege zu gehen, lernen wir die JOIN -Anweisung später noch näher kennen, die dasselbe Ergebnis liefert. Doch zuerst wollen wir unsere Verbundabfrage noch ein wenig erweitern. Und fragen uns: Wie können wir weitere Tabellen verbinden? Wir wollen jetzt neben den drei Attributen aus dem vorherigen Abschnitt noch einen Eintrag aus einer weiteren Tabelle anzeigen lassen. Es gibt ja weitere Tabellen, die mit der Tabelle tbl_mitarbeiter in Beziehung stehen.
Für den Ort erstellen wir eine eigene Tabelle. Dies macht Sinn, um Datenredundanz (Mehrfachspeicherung) zu vermeiden. In dieser Tabelle sind zu den entsprechenden PLZ die Orte eingetragen. Da die PLZ eindeutig ist, wird diese zu unserem Index und kann als Suchkriterium dienen. CREATE TABLE `orte` ( `ort` VARCHAR( 255) NOT NULL, PRIMARY KEY ( `plz`)) ENGINE = MYISAM; Tragen Sie nun 1-2 Adressen von Hand über phpMyAdmin ein (auch die PLZ und den Ort in der entsprechenden Tabelle). Verbinden beider Tabellen Für die Auswertung und Nutzung unserer Adressauflistung müssen wir die Tabelle "adressen" mit der Tabelle "orte" verbinden. Als erstes selektieren wir alle Spalten der Adress-Tabelle: SELECT * FROM adressen Zum Verbinden benötigen wir den grundlegenden Aufbau: LEFT JOIN tabellenname ON Relation Relation: Nun müssen wir für MySQL die Zusammenhänge zwischen den Tabellen aufbauen. Dies geschieht über eine Relation. Relationen beschreiben i. A. Beziehungen zwischen Gegenständen bzw. SQL Joins - Wie man Tabellen in SQL verbindet | DataMines. Objekten.
Yosef Aziz, Gründer von Ich bin Yosef Aziz, Gründer von Ich möchte Studenten und Arbeitnehmern im Bereich Data mit eine Plattform bieten, um komplizierte Sachverhalte rund ums Data Mining ohne unnötig erschwerenden Fachjargon verstehen zu lernen. Hast du Fragen? Hinterlasse einen Kommentar!
Daher stellen wir jetzt eine Verknüpfung mit der Tabelle tbl_titel her. Die Verweise darauf befinden sich in der Spalte titel_ID ( Fremdschlüssel der Tabelle Mitarbeiter). Die Tabelle tbl_titel enthält ein Attribut mit gleichem Namen hier aber als Primärschlüssel. Daher wird sie auch als Mastertabelle bezeichnet. Mitarbeiter ist dagegen die so genannte Detailtabelle. In der Abfrage wird die Mastertabelle immer zuerst genannt. Wir suchen in diesen Spalten nach zueinander passenden Paaren und schreiben in unsere Ergebnisliste zu allen Mitarbeitern die entsprechende Titel. Unsere SQL-Anweisung können wir entsprechend erweitern. Zusätzliche Bedingungen müssen in der WHERE -Anweisung mit AND hinzugefügt werden. SQL-JOIN | So verknüpfen Sie relationale Datenbankentabellen - IONOS. Nach dem Hinzufügen aller benötigten Tabellen und Attribute entsteht die Form: SELECT, name, abteilungsname, abteilung_aufgabengebiet FROM tbl_abteilung, tbl_titel, tbl_mitarbeiter WHERE tbl_abteilung. abteilung_ID=tbl_mitarbeiter. abteilung_ID AND tbl_titel. titel_ID=tbl_mitarbeiter.