2 Tabellen miteinander verbinden, aber wie nur?

Alles, was PHP betrifft, kann hier besprochen werden.

2 Tabellen miteinander verbinden, aber wie nur?

Postby Grandmaster » 14. May 2016 19:21

Hallo,

ich habe eine Tabelle Videospiel, wobei ich die Daten V_ID, Plattform, Titel und Fsk anzeigen lasse
Ausschnitt asu dem Dokument:

$sql = "SELECT V_ID, Titel, Plattform, FSK FROM videospiel";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<br> V_ID: ". $row["V_ID"]. " - Name: ". $row["Titel"]. " " . $row["Plattform"] . " " .$row["FSK"] . "<br>";
}
} else {
echo "0 Ergebnisse";
}

Jetzt möchte ich auch aus der Tabelle "Publisher" "Name" anzeigen lassen, wobei P_ID Primärschlüssel ist. Da es für spiele mehrere Publisher gibt, haben wir noch eine Tabelle und zwar die Tabelle "published" mit "P_ID" aus der Tabelle "Publisher"
und V_ID aus "videospiel". Wie kann ich jetzt den Publisher genau für das Spiel anzeigen lassen? Danke für eure Mühe!
Grandmaster
 
Posts: 14
Joined: 01. May 2016 11:28
XAMPP version: 3.2.2
Operating System: Windows 10

Re: 2 Tabellen miteinander verbinden, aber wie nur?

Postby Altrea » 15. May 2016 00:11

Du benötigst einen 2-fachen Join von Videospiel über published to Publisher. Welche Art von JOIN hängt von der Datenbasis und dem Grund des Anzeigens ab. In den meisten Fällen sollte hier aber ein LEFT JOIN passen.
Da du mehrere Publisher pro Spiel anzeigen können musst würde ich zudem auf Publisher Name ein GROUP_CONCAT anwenden.
Ein Beispiel das deinem sehr nahe kommt kannst du zum Beispiel hier finden:
https://www.php.de/forum/webentwicklung ... -beziehung
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11926
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 10 Pro x64

Re: 2 Tabellen miteinander verbinden, aber wie nur?

Postby Nobbie » 15. May 2016 10:14

Es gibt mir schon sehr zu denken, dass Du einerseits nicht die geringste Ahnung von einem JOIN zu haben scheinst (eines der elemtaren Basiskonstrukte schlechthin), andererseits hier ein blitzsauber formuliertes Datenmodell vorliegt, welches eine m:n Beziehung darstellt und einwandfrei durchdefiniert wurde. Datenmodelle richtig zu erkennen zu formulieren fällt den allermeisten Programmierern noch viel schwerer, als einen vertrackten Select zu formulieren.

Das läßt mich vermuten, dass wir hier eine Übungsaufgabe/Hausaufgabe einer Uni, eines Fortbildungskurses o.ä. machen sollen. Oder nicht?! Aber so lernt man das nicht, ich selbst habe SQL mit Hilfe des wunderbaren Buchs "Das MySQL Kochbuch" aus dem O'Reilly Verlag gelernt, das ist zwar inzwischen veraltet (ich weiß nicht, ob es auf neuere MySQL Releases angepasst wurde), damals war MySQL 3.x aktuell. Aber das Buch ist immer noch erste Wahl für das Verstehen des Konzepts von SQL und nach entsprechendem Studium sollte jeder in der Lage sein, die passenden Selects zu formulieren. Kann ich Dir nur sehr ans Herz legen, das bringt um Welten mehr als sich in Foren die Aufgabe lösen zu lassen.
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04

Re: 2 Tabellen miteinander verbinden, aber wie nur?

Postby Grandmaster » 15. May 2016 12:54

Danke! Ich werde mich mal informieren.

@Nobbie ich gehe noch zur Schule (10. Klasse) und das soll ein Projekt werden, also ist es keine Übungsaufgabe/Hausaufgabe. Ich habe seither eine bestimmte Lernmethode: Ich suche mir die Lösung eines Problems und gehe die Lösung solange durch bis ich alles verstanden habe. Ich habe also ein Beispiel angeschaut und dieses bin ich solange durchgegangen bis ich jeden einzelnen Schritt verstehen konnte und auf mein Datenmodell übertragen konnte, daher das "blitzsauber formulierte Datenmodell". Ob diese Lernmethode eine gute ist, sei mal dahingestellt.
Grandmaster
 
Posts: 14
Joined: 01. May 2016 11:28
XAMPP version: 3.2.2
Operating System: Windows 10

Re: 2 Tabellen miteinander verbinden, aber wie nur?

Postby Nobbie » 15. May 2016 16:29

Dann hast Du ja die Lösung offensichtlich schon bekommen. Letztendlich ist das hier das falsche Forum, das Forum ist dazu gedacht, technische Probleme bei der Installation von MySQL zu lösen. Als Forum für Fragen rund um SQL gibt es sicherich geeignetere Foren.
Nobbie
 
Posts: 13165
Joined: 09. March 2008 13:04


Return to PHP

Who is online

Users browsing this forum: No registered users and 55 guests