在我的应用程序中,我正在两个不同的表和两个不同的列名上执行关键字搜索。我想将movies.title
和people.title
结合起来,以便我可以按字母顺序将所有这些组合在一起。目前我合并了我的两个查询,结果首先是电影,然后是人。
public function get_from_keyword($keyword){
$movie_query = $this->db
->select('id, title, release_year')
->from('movies')
->like('movies.title', $keyword)
->where('movies.id IS NOT NULL', null)
->get()
->result();
$person_query = $this->db
->select('name, person_id')
->from('people')
->like('name', $keyword)
->get()
->result();
$merged_queries = array_merge($movie_query, $person_query);
return $merged_queries;
}
我不确定是否需要动态更改SELECT
查询中的一个列名,以便将它们合并在一起。
答案 0 :(得分:1)
尝试使用“AS”将movies.title和people.name字段命名为:
$person_query = $this->db
->select('name', 'MySortTitle') // AS
->select('person_id')
->from('people')
->like('name', $keyword)
->get()
->result();
对于电影查询也一样:
$movie_query = $this->db
->select('title', 'MySortTitle') // AS
->select('id, release_year')
->from('movies')
->like('movies.title', $keyword)
->where('movies.id IS NOT NULL', null)
->get()
->result();
然后按MySortTitle对合并的数组进行排序。