Hallo liebe Community,
ich erstelle hier eine Datenbank + FrontEnd + Backend für einen Onlinebuch-Shop (im weitesten Sinne) und habe eine Frage zu dem JOIN Befehl in MySql.
Irgendwie muss ich den Sql-Befehl einmal sehen, damit ich ihn richtig verstehe. Bis jetzt schaff ich meist durch ausprobieren und tutorials lesen auf die Lösung zu kommen, aber irgendwie werd ich hiermit nicht fertig....
Also, es geht um folgendes:
Es soll eine Suche eingebaut werden, welche eine Stichwortsuche oder eine erweiterte Suche (Titel, Untertitel, Jahr, Autor, Kategorie) beinhaltet.
Wäre ja im Prinzip auch supereasy, das ganze hat nur einen Haken:
Kategorie und Autor hat eine eigene Tabelle, zur Vereinfachung hier die 5 Tabellen in Kürze:
tbl_books
id, title, subtitle
tbl_categories
id, cname
tbl_authors
id, name, firstname, function
link_categories
id, bookid, catid
link_authors
id, bookid, authorid
In der Suche wird Kategorie und Autor über ein Select mit der id von tbl_category bzw. tbl_authors ausgewählt
Angenommen jemand sucht nun nach dem Titel "Gesetz" in der Kategorie "Mittelstandsmanagement", dann muss da ja auf jeden Fall ein JOIN rein, sehe ich das richtig?
Da es über 2 Tabellen geht, müssten doch sogar gleih 2 JOINS rein, wie kann man sowas denn basteln?
Also ich möchte jetzt hier nicht nach einem fertigen Code fragen, helft mir nur auf die Sprünge, das würde schon reichen
ZIEL: Ein SELECT-Befehl, welcher jeden Buchtitel mit jedem Autor und jeder Kategorie auswirft, welche natürlich auch zueinander passen... (in der entsprechenden link_* Tabelle festgelegt)
Ich probier im Hintergrund auch mal weiter, muss doch zu schaffen sein....
MfG, PR
/edit
glaub ich habs schon... :/
aber unelegant ohne JOINS, einfach alles auswerfen und das nützliche raussuchen...
SELECT * FROM `tbl_books`, `link_authors`, `link_categories` WHERE ...."
(WHERE wird dynamisch gesetzt, je nach dem was der user eingegeben hat)
gehts besser?
ich erstelle hier eine Datenbank + FrontEnd + Backend für einen Onlinebuch-Shop (im weitesten Sinne) und habe eine Frage zu dem JOIN Befehl in MySql.
Irgendwie muss ich den Sql-Befehl einmal sehen, damit ich ihn richtig verstehe. Bis jetzt schaff ich meist durch ausprobieren und tutorials lesen auf die Lösung zu kommen, aber irgendwie werd ich hiermit nicht fertig....
Also, es geht um folgendes:
Es soll eine Suche eingebaut werden, welche eine Stichwortsuche oder eine erweiterte Suche (Titel, Untertitel, Jahr, Autor, Kategorie) beinhaltet.
Wäre ja im Prinzip auch supereasy, das ganze hat nur einen Haken:
Kategorie und Autor hat eine eigene Tabelle, zur Vereinfachung hier die 5 Tabellen in Kürze:
tbl_books
id, title, subtitle
tbl_categories
id, cname
tbl_authors
id, name, firstname, function
link_categories
id, bookid, catid
link_authors
id, bookid, authorid
In der Suche wird Kategorie und Autor über ein Select mit der id von tbl_category bzw. tbl_authors ausgewählt
Angenommen jemand sucht nun nach dem Titel "Gesetz" in der Kategorie "Mittelstandsmanagement", dann muss da ja auf jeden Fall ein JOIN rein, sehe ich das richtig?
Da es über 2 Tabellen geht, müssten doch sogar gleih 2 JOINS rein, wie kann man sowas denn basteln?
Also ich möchte jetzt hier nicht nach einem fertigen Code fragen, helft mir nur auf die Sprünge, das würde schon reichen
ZIEL: Ein SELECT-Befehl, welcher jeden Buchtitel mit jedem Autor und jeder Kategorie auswirft, welche natürlich auch zueinander passen... (in der entsprechenden link_* Tabelle festgelegt)
Ich probier im Hintergrund auch mal weiter, muss doch zu schaffen sein....
MfG, PR
/edit
glaub ich habs schon... :/
aber unelegant ohne JOINS, einfach alles auswerfen und das nützliche raussuchen...
SELECT * FROM `tbl_books`, `link_authors`, `link_categories` WHERE ...."
(WHERE wird dynamisch gesetzt, je nach dem was der user eingegeben hat)
gehts besser?
Comment