Codeigniter mysql join无法正常工作

时间:2013-04-24 22:36:40

标签: mysql codeigniter

我有一个包含2个表的数据库和一个搜索关键字,我如何加入表,在所有表中进行选择?

$this->db->select('*');
$this->db->from('tracks', 'genres');
$this->db->join('genres', 'genres.genreid = tracks.genre_id');

$this->db->or_where('tracks.title', $key);
$this->db->or_where('tracks.author', $key);
$this->db->or_where('genres.genreid', $key);
$this->db->order_by('tracks.rate', 'ASC');
$q = $this->db->get();

3 个答案:

答案 0 :(得分:0)

你必须有一张桌子,其余的人才能加入

$这 - > DB-肽从('轨道&#39);

答案 1 :(得分:0)

使用join语句来完成where子句的工作也是值得的。如果你连接然后选择表之间的所有连接然后应用于哪里,但是在连接中使用AND,则对数据库的工作要少。

答案 2 :(得分:0)

$this->db->select('*');
$this->db->from('tracks');
$this->db->join('genres', 'genres.genreid = tracks.genre_id');
$this->db->where('tracks.title', $key);
$this->db->or_where('tracks.author', $key);
$this->db->or_where('genres.genreid', $key);
$this->db->order_by('tracks.rate', 'ASC');
$q = $this->db->get();

这是使用它的正确方法。您在FROM子句和JOIN中使用相同的表这是问题。另一件事是你缺少WHERE子句,只使用或在哪里。