欢迎各位兄弟 发布技术文章

这里的技术是共享的

ci框架中join链接查询中怎么使用别名

//
 
$this->db->select('a.*, b.name as b_name');
$this->db->from('table1 a');
$this->db->join('table2 b','a.cid = b.id','left');
$this->db->where('a.id'$id);
$res $this->db->get()->result();

来自 http://zhidao.baidu.com/link?url=jhZqPIgp9gk4BQ8x032Ds82MRwaQF6vZWQoj0OafDP0KQwX1TXr76hxmciBYYrbtqG1...



[HELP] ci框架中join链接查询中怎么使用别名

[复制链接]
  
sql是这样的:
SELECT c.cat_id, c.cat_name, COUNT(s.cat_id) AS has_children FROM db_category  AS c 

LEFT JOIN db_category AS s ON s.parent_id=c.cat_id 

GROUP BY c.cat_id  ORDER BY c.parent_id, c.sort_order ASC

表结构是这样的

[td]
 字段类型      

 
cat_idsmallint(5) 

 
cat_namevarchar(90) 

 
keywordsvarchar(255) 

 
cat_descvarchar(255) 

 
parent_idsmallint(5) 

请问如果用ci的 join来写这个语句怎么写,下面是我用的方法,返回空,不知道哪里用得不对

$this->db->select('c.cat_id, c.cat_name,  COUNT(s.cat_id) AS has_children');
$this->db->from('db_category as c');
$this->db->join('db_category as s', 's.parent_id=c.cat_id');
$this->db->group_by("c.cat_id"); 
$this->db->order_by("c.parent_id, c.sort_order", 'DESC'); 
$query = $this->db->get();


 
 
 
 
 
  
沙发
 
 发表于 2014-5-22 09:39:16 | 只看该作者
在保证sql无误的情况下~~
单对照着sql看了下 AR部分 试试  $this->db->join('db_category as s', 's.parent_id=c.cat_id','left');
 
 
 
 
  
藤椅
 
 发表于 2014-5-22 14:33:33 | 只看该作者
如果设置了表的前缀,就不能用别名了,否则会找不到表
 
 
 
 
  
板凳
 
 发表于 2015-1-8 00:28:22 | 只看该作者
设置了,别名,如果字段名一样,还是会被覆盖的
来自  http://codeigniter.org.cn/forums/thread-18891-1-1.html  

唯物品评历史

关注"唯物品评历史",跟着泪痕春雨先生,读懂历史,看彻人生

打开隐藏二维码