我正在实现基于作者的图书搜索功能。我应该返回一个查询结果,其中包含被查询作者所写的所有书籍。但是,对某些作者姓名的查询可能会返回多个结果(例如,“Smith, W”的查询可能匹配“Smith, Wesson”和“Smith, Will”)。
所以,我的问题是如何“连接”这些不同作者所写的所有书籍。如果我不考虑多个作者匹配查询的可能性,我会这样做(在伪代码中,因为我的真实代码现在非常混乱):
- 在作者表中搜索作者
- 匹配查询
- 获取作者的authorid
- 在 book table 中搜索具有相同 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 中执行此操作。是否有任何功能/运算符可以让我这样做?是的,我已经尝试过+=
,即使我对它的期望不高,但输出却很丑陋。
再次,我为伪代码道歉。我会尝试清理我的代码并尽快编辑,但如果在此之前有答案,那就太好了。谢谢。