我正在實現基於作者的圖書搜索功能。我應該返回一個查詢結果,其中包含查詢作者編寫的所有書籍。然而,對某些作者姓名的查詢有可能返回多個結果(例如,「Smith,W」的查詢可能與「Smith,Wesson」和「Smith,Will」匹配)。是否可以「連接」查詢結果?
所以,我的問題是如何「連接」這些不同作者寫的所有書籍。如果我不考慮多個作者匹配查詢的可能性,那麼我會採用類似的方式(以僞代碼形式,因爲我的真實代碼現在非常混亂):
- 搜索作者作者表
- 匹配查詢
- 獲取作者的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框架)和MySQL中這樣做。有沒有任何功能/操作符可以讓我做到這一點?是的,我試過+=
,即使我對它沒有多少期待,也沒有想到會有一個醜陋的輸出。
再一次,我對僞代碼表示歉意。我會嘗試清理我的代碼並儘快編輯,但如果在此之前有答案,它就會變得非常棒。謝謝。
有什麼不對的加入書和作者在查詢中? – wildplasser 2012-04-04 20:08:30
我不知道Codeigniter,但你需要的查詢看起來像這樣:'SELECT author。*,book。* FROM author LEFT JOIN book ON author.authorid = book.authorid WHERE author.authorid = <你的查詢作者> ' – 2012-04-04 20:10:06
我承認還沒有看過JOINS呢。將嘗試他們並稍後再報告。謝謝。 – skytreader 2012-04-04 20:13:11