MySQL: Datensätze zweier Tabellen
Philip Ehret
- datenbank
0 Tom0 Philip Ehret0 Tom0 Tom0 Philip Ehret0 Tom
0 Vinzenz Mai
Hallo,
ich hab die Tabelle galleries
und die Tabelle pictures
.
Die sehen wie folgt aus:
Tabelle galleries
id
int auto_increment PRIMARY_KEY
name
varchar(255)
Tabelle pictures
id
int auto_increment PRIMARY_KEY
g\_id
int
description
text
Nehmen wir an wir haben folgende Datensätze:
Tabelle galleries
1, "Gallerie Eins"
2, "Gallerie Zwei"
3, "Gallerie Drei"
Tabelle pictures
1, 1, "Bild Eins"
2, 1, "Bild Zwei"
3, 2, "Bild Drei"
4, 3, "Bild Vier"
So gehören Bilder Eins und Zwei zu der Gallerie Eins.
Nun möchte ich gerne anhand der Gallerie-ID den Gallerie-Namen und alle zugehörigen Bilder in ein Array einlesen. Wie geht das mit MySQL?
Viele Grüße,
Philip
Hello,
Hallo,
ich hab die Tabelle
galleries
und die Tabellepictures
.
Die sehen wie folgt aus:
Tabellegalleries
id
int auto_increment PRIMARY_KEY
name
varchar(255)Tabelle
pictures
id
int auto_increment PRIMARY_KEY
g\_id
int
description
textNehmen wir an wir haben folgende Datensätze:
Tabellegalleries
1, "Gallerie Eins"
2, "Gallerie Zwei"
3, "Gallerie Drei"Tabelle
pictures
1, 1, "Bild Eins"
2, 1, "Bild Zwei"
3, 2, "Bild Drei"
4, 3, "Bild Vier"So gehören Bilder Eins und Zwei zu der Gallerie Eins.
Nun möchte ich gerne anhand der Gallerie-ID den Gallerie-Namen und alle zugehörigen Bilder in ein Array einlesen. Wie geht das mit MySQL?
z.B. mit einem Select mit where-Klausel
select galleries.name, pictures.description where galleries.id = pictures.g_id
Es werden nun mur die Galerien angezeigt, zu denen es auch Bilder gibt.
Wolltest Du das so?
Oder sollten alle Galerien aufgeführt werden, auch wenn es keine Bilder dazu gibt?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo,
Es werden nun mur die Galerien angezeigt, zu denen es auch Bilder gibt.
Wolltest Du das so?
Es sollten auch Gallerien ohne Bilder angezeigt werden.
Viele Grüße,
Philip
Hello,
Es werden nun mur die Galerien angezeigt, zu denen es auch Bilder gibt.
Wolltest Du das so?Es sollten auch Gallerien ohne Bilder angezeigt werden.
Dann musst Du den passenden Join verwenden.
schau doch z.B. mal hier http://www.little-idiot.de/mysql/mysql-118.html#joins
oder auch im MySQL-Handbuch http://dev.mysql.com/doc/refman/5.0/en/join.html
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
Es sollten auch Gallerien ohne Bilder angezeigt werden.
SELECT A.name, B.description
FROM galleries AS A
LEFT OUTER JOIN pictures AS B ON A.ID = B.g_id;
Ich denke, so müsste es funktionieren.
Wenn man sowas für die Anzeige aufbereitet, kann die Datenmenge im Ergebnis aber ziemlich groß werden, da der Name der Gallerie ja redundant vorkommt.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo,
Wenn man sowas für die Anzeige aufbereitet, kann die Datenmenge im Ergebnis aber ziemlich groß werden, da der Name der Gallerie ja redundant vorkommt.
Joa, da hast du leider Recht. Wenn ich nun nur ein einziges Mal die Daten von der Gallerie haben will, muss ich das dann mit zwei Queries machen?
Viele Grüße,
Philip
Hello,
Joa, da hast du leider Recht. Wenn ich nun nur ein einziges Mal die Daten von der Gallerie haben will, muss ich das dann mit zwei Queries machen?
Ja. Je nach Datenmenge auch noch mehr. Ich würde es jedenfalls so machen.
Gerade, wenn das nachher in PHP oder so weiterverarbeitet werden soll zur Anzeige, dann würde ich gleich zwei Arrays in der passenden Sortierung aufbauen.
Wie ist denn die Darstellung geplant?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hallo Tom,
Du warst verdammt lange nicht da!
Dann musst Du den passenden Join verwenden.
schau doch z.B. mal hier
SELFHTML aktuell:
Einführung Joins
Fortgeschrittene Jointechniken.
Ich bin voreingenommen :-) Diese Artikel sind besser als die von Dir verlinkten.
Freundliche Grüße
Vinzenz