私は著者に基づいて本の検索機能を実装しています。質問された著者が書いたすべての書籍を含む質問結果を返すべきです。ただし、特定の著者名のクエリが複数の結果を返す可能性があります(たとえば、「Smith、W」のクエリが「Smith、Wesson」および「Smith、Will」に一致する可能性があります)。クエリの結果を「連結」することは可能ですか?
私の問題は、これらのさまざまな著者によって書かれたすべての本をどのように「連結」するかということです。私は、クエリに一致する複数の著者の可能性を考慮していない場合は(私の実際のコードが今はかなり厄介であるとして、擬似コードで)、私はこのようなものについては行くだろう:著者のための
- 検索authorテーブルクエリに一致する
- GET著者のauthorid
しかし、複数の著者の可能性を、私は心の中でこのような何かを持っている同じauthoridと書籍のレコードの
// 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;
私はこれをPHP(CodeIgniter Framework)とMySQLで行います。私にこれを可能にする関数/演算子はありますか?はい、私は+=
を試しました。たとえそれがあまり期待できなくても、醜い結果になりました。
もう一度、擬似コードのご迷惑をおかけします。私は自分のコードをクリーンアップし、できるだけ早く編集しようとしますが、その前に答えが来たら、それは素晴らしいものです。ありがとう。 PHPでCONCATENATEを行うに
およびクエリの作成者? – wildplasser
Codeigniterはよく分かりませんが、必要なクエリは次のようになります: 'SELECT author。*、book。* FROM author LEFT JOIN book ON author.authorid = book.authorid WHERE author.authorid = ' –
私はまだJOINSを調べていません。それらを試して後で報告します。ありがとう。 – skytreader