我有两张表keywords_tags
和keywords_tags_company
keyword_tag_id keyword_tag_name
-------------- ----------------
1 Clothing
2 Footwear
3 Fashion
keyword_tag_company_id keyword_tag_id company_id
---------------------- -------------- ----------
1 1 7
2 2 7
3 3 7
我想选择keyword_tag_name
为company_id
的所有7
。
这是我的查询
public function getAllTag($id) {
$this->db->where('company_id', $id);
$this->db->select('keyword_tag_id');
$tagId = $this->db->get('keywords_tags_company')->result();
$this->db->or_where('keyword_tag_id', $tagId);
$this->db->select('keyword_tag_name');
$tagName = $this->db->get('keywords_tags')->result_array();
return $tagName;
}
如果我在查询输出上面运行是:
未知列'数组'在' where子句' SELECT
keyword_tag_name
FROM(keywords_tags
)WHEREkeyword_tag_id
= Array
我在这个查询中错了。
感谢您的帮助。
答案 0 :(得分:2)
您正在or_where('keyword_tag_id', $tagId)
中传递数组,因为父查询会返回多行,我建议您使用带有连接的单个查询
public function getAllTag($id) {
return $this->db->select('t.keyword_tag_name')
->from('keywords_tags t')
->join('keywords_tags_company c','t.keyword_tag_id = c.keyword_tag_id')
->where('c.company_id', $id)
->get()
->result_array();
}