| | | | |
| | |
| PHP Code Flüsterer Registriert seit: 21.08.2005 Beiträge: 4682 PHP-Kenntnisse: Fortgeschritten | |
| | |
| Moderator und Wett-König | Hallo prinzli, mit einem JOIN kannst du Spalten verschiedener Tabellen in einem Ergebnis-Satz zusammenfassen. Ja nach Ausprägung des JOINs erhälst du unterschiedliche Ergebnisse. Ein INNER JOIN beispielsweise ist ein ausschließendes JOIN, das nur die Sätze liefert, die relevant sind. Ein LEFT bzw. RIGHT JOIN fügt Spalten links oder rechts an die bisherigen Ergebnisse an. Mit LEFT OUTER JOIN und RIGHT OUTER JOIN gibt es zwei weitere Spezialfälle. Was genau Anwendung findet, oder finden sollte entscheidet der Anwendungsfall und das Design der Tabellen in deiner Datenbank. Möchtest du beispielsweise alle Attribute eines Users, die du aber in getrennten Tabellen "user" und "attributes" gespeichert hast, zusammenfassen, und hat die Tabelle eine Referenz auf die ID eines Benutzers, kannst du ein Code: SELECT user.id,user.name,attributes.* FROM user LEFT JOIN attributes ON user.id = attributes.userid WHERE user.id = '123';
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| | |||
| Moderator und Wett-König | Hallo prinzli, Zitat:
Zitat:
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
| | |
| | ||
| Moderator und Wett-König | Hallo prinzli, Zitat:
__________________ Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 21.10.2007
Beiträge: 120
![]() | ..hmm.. Also ich habe zwei Tabellen (bis jetzt.. hehe) Code: Tabelle BENUTZER:
--> id | int(5) | auto_increment | primaryKey
/ benutzername | varchar(200)
| passwort | varchar(200)
| vorname | varchar(200)
| nachname | varchar(200)
| email | varchar(200)
| land | varchar(200)
|
|
| Tabelle BENUTZER_OPTIONEN
|
\ id | int(5) auto_increment | primaryKey
--> benutzer_id | int(5)
benutzername | varchar(200) (den kann ich wohl löschen?!)
datum | text
webseite | varchar(150)
das wird via inserit und select gemeistert..? Zitat:
Vielen Dank..! Gruss Prinzli | |
| | |
| | |
| Erfahrener Benutzer Registriert seit: 21.05.2008
Beiträge: 9.937
![]() | Jein. Die MySQL-Datenbankengine innoDB kann dir zumindest bei Änderungen Abhängigkeiten auflösen. Die Standard-Engine MyISAM kennt keine Verbindung unter Tabellen! Das heißt (auf innoDB bezogen) löscht du den Eintrag aus "Benutzer", kann auch automatisch der Eintrag aus "Benutzer-Optionen" gelöscht werden. Dies geschieht durch die Definition der Tabellenstruktur (ON DELETE/UPDATE CASCADE). Macht Sinn, damit keine Benutzer-Optionen ohne Benutzer existieren. Das kann natürlich auch böse Folgen haben. Ein Land aus einem unserer Projekte wurde einmal gelöscht, das hatte zur Folge, dass alle Bundesländer, Kreise, Städte und all ihre Karten auch gelöscht wurden. Die Datenbank war danach leer. Zumindest ist es konsequent. Die Auswahl (SELECT) und Verknüpfung der Optionen zu ihrem Benutzer muss wie du richtig erkannt hast, selbst erfolgen. Das würde dann ganz einfach über Code: SELECT * FROM benutzer AS b LEFT JOIN benutzer_optionen AS o ON b.id = o.benutzer_id Würdest du die Tabelle "Benutzer_Optionen" so umstellen, könntest du folgenden kürzeren SQL-JOIN verwenden: Code: SELECT * FROM benutzer NATURAL JOIN benutzer_optionen |
| | |
| | ||
| Erfahrener Benutzer Registriert seit: 21.10.2007
Beiträge: 120
![]() | Vielen Dank @Zegerling Eine kurze Zwischenfrage: Zitat:
Herzlichen Dank! Gruss Prinzli | |
| | |
| | |
| moderatives Dielektrikum Registriert seit: 21.05.2008
Beiträge: 34.241
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | AS ... definiert einfach ein Alias, um gerade bei JOINS nicht die langen Tabellennamen vor .Spaltenbeziechner schreiben zu müssen. Also bspw. Code: SELECT a.Name, a.Age, s.Title FROM MP3_Artists AS a, JOIN MP3_Songs AS s ON a.ID = b.ArtistID Code: SELECT MP3_Artists.Name, MP3_Artists.Age, MP3_Songs.Title FROM MP3_Artists JOIN MP3_Songs ON MP3_Artists.ID = MP3_Songs.ArtistID |
| | |
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen | ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Left Join.. mit ON 2 Spalten holen? | kleenerandi | PHP Tipps 2008 | 0 | 31.03.2008 22:48 |
| WHERE-Clause im Left Join | cycap | Datenbanken | 2 | 06.11.2007 11:06 |
| LEFT OUTER JOIN auf Nicht-Tabelle | inu | Datenbanken | 15 | 29.03.2007 20:21 |
| [solved] LEFT JOIN - #1066 - Not unique table/alias | moose | Datenbanken | 6 | 12.12.2006 06:41 |
| [gelöst] LEFT JOIN und trotzdem nicht alle Sätze da?!? | stefanjann | Datenbanken | 3 | 24.10.2006 11:32 |
| Problem mit Inner join | Jabi | Datenbanken | 15 | 09.05.2006 14:10 |
| Left outer join, timestamps | php-newbie83 | Datenbanken | 29 | 27.04.2006 09:29 |
| LEFT OUTER JOIN für mehr als 2 Tabellen ? | Alpha Centauri | Datenbanken | 4 | 05.04.2006 16:18 |
| Select Problem | Datenbanken | 17 | 16.01.2006 21:54 | |
| [Erledigt] LEFT JOIN Query Bildung | Datenbanken | 6 | 04.11.2005 15:24 | |
| [Erledigt] LEFT JOIN funtkioniert nicht richtig | Datenbanken | 3 | 19.10.2005 17:38 | |
| [Erledigt] LEFT JOIN Problem | Datenbanken | 11 | 21.03.2005 16:36 | |
| [Erledigt] Menülinks in Kategorien per Left join | Datenbanken | 20 | 14.03.2005 12:43 | |
| [Erledigt] left outer join mit bedingung | Datenbanken | 2 | 04.03.2005 00:52 | |
| den letzte(grösten) eintrag aus LEFT JOIN | Datenbanken | 2 | 24.07.2004 18:33 | |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| sql join erklärung, mysql join erklärung, left join erklärung, join erklärung, sql joins erklärung, join sql erklärung, left join mysql erklärung, erklärung left join, mysql left join erklärung, erklärung sql join, mysql joins erklärung, erklärung join, join erklärung sql, mysql erklärung left join, join erklären, left join einfach erklärt, left join bedeutung, erklärung inner join, join mysql erklährung, sql erklärung joins |

Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.