我建立涉及连接的查询。 这是第一次我已经做了活动记录数据库的东西,我已经打了一个有点障碍的。
我想一个表叫加入companies
的users
表,所以我可以得到公司等用户中的名字,我已经做了这种成功,像这样:
function get_profile_by_username($username)
{
$this->db->join('companies', $this->table_name.'.company_id = companies.id');
$this->db->where('LOWER(username)=', strtolower($username));
$query = $this->db->get($this->table_name);
if ($query->num_rows() == 1) return $query->row();
return NULL;
}
然而问题是,在领域companies
,它们id
和name
的对象作为简称返回name
。
通常,当我会写原始查询我想给别名的表,结果会是这样的u.company_id
, c.name
。 所以我想知道name
一点关系都没有与用户,但当然是公司的名称。 虽然现在,但可能在未来不是一个问题, id
列显然不能在结果集中并存,所以一个被覆盖!
我们怎样才能得到这个那种来自某个表中的字段之间的区别吗? 还是有要去关于表连接,并与连接查询的数据集/对象的工作更好的办法?
编辑:
如果我是这样做的原始查询我会怎么做:
SELECT u.id, u.username, c.name
FROM users AS u
JOIN companies AS c
ON c.id = u.company_id
WHERE u.username = 'foobar';
这是伟大的,但如果我这样做,在活动记录我认为这是实践中相当差,如果在所有工作。