Ich implementiere eine Buchsuche basierend auf Autoren. Ich sollte ein Abfrageergebnis zurückgeben, das alle Bücher des abgefragten Autors enthält. Es ist jedoch möglich, dass eine Abfrage nach bestimmten Autornamen mehrere Ergebnisse zurückgibt (z. B. könnte eine Abfrage von "Smith, W" mit "Smith, Wesson" und "Smith, Will" übereinstimmen).Ist es möglich, Ergebnisse einer Abfrage zu "verketten"?
Also, mein Problem ist, wie alle Bücher von diesen verschiedenen Autoren "verkettet" werden. Wenn ich die Möglichkeit, mehrere Autoren nicht der Ansicht, eine Abfrage übereinstimmt, würde ich so etwas wie dies gehen (in Pseudo-Code, wie mein richtiger Code ziemlich chaotisch ist jetzt):
- Suche Autor Tabelle für den Autor
- Anpassung der Abfrage
- get Autors authorid
- Suche Buchtabelle für Buch Datensätze mit demselben authorid
jedoch mit der Möglichkeit, mehrere Autoren, ich habe so etwas in den Sinn:
// search author table for authors matching the query
foreach(author_match as am){
// search book table for book records with authorid=am.authorid
// Is there such thing as this? :\
book_results += all the rows returned by previous query
}
return book_results;
Ich mache das in PHP (mit CodeIgniter Framework) und MySQL. Gibt es eine Funktion/einen Operator, der es mir erlaubt, dies zu tun? Ja, ich habe versucht +=
, selbst wenn ich nicht viel davon erwartet hatte, zu einem hässlichen Ausgang.
Wieder entschuldige ich mich für den Pseudocode. Ich werde versuchen, meinen Code aufzuräumen und so schnell wie möglich zu bearbeiten, aber wenn eine Antwort davor kommt, wäre es genauso großartig. Vielen Dank.
Was mit Joining Bücher falsch ist und Autoren in einer Abfrage? – wildplasser
Ich kenne Codeigniter nicht gut, aber die Abfrage, die Sie brauchen, sieht etwa so aus: 'SELECT author. *, Book. * FROM Autor LEFT JOIN book ON Autor.authorid = book.authorid WHERE author.authorid = ' –
Ich habe zugegebenermaßen noch nicht in JOINS geschaut. Werde sie versuchen und später Bericht erstatten. Vielen Dank. – skytreader