首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >codeigniter活动记录左连接

codeigniter活动记录左连接
EN

Stack Overflow用户
提问于 2014-05-06 13:22:36
回答 1查看 105.3K关注 0票数 30

我有3个mysql表。

代码语言:javascript
复制
Table 1 user  
id | name  

Table 2 emails  
id | email  

Table 3 user_email  
user_id | email_id  

我没有查询多表的经验。

使用codeigniter活动记录,我想找出基于用户id的用户电子邮件地址,请告知以下代码是否正确?

代码语言:javascript
复制
$CI->db->select('email');
$CI->db->from('emails');
$CI->db->where('id', $userid);
$CI->db->join('user_email', 'user_email.user_id = emails.id', 'left');
$query = $CI->db->get();  
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-06 13:27:06

您的where子句错误您需要比较表中的user_id,您正在将电子邮件的id与提供的$user_id进行比较

代码语言:javascript
复制
$CI->db->select('email');
$CI->db->from('emails');
$CI->db->where('user_id', $userid);
$CI->db->join('user_email', 'user_email.user_id = emails.id', 'left');
$query = $CI->db->get(); 

一种更有用的方法是为表指定别名,这样具有相同列的表就不会有任何混淆

代码语言:javascript
复制
$CI->db->select('e.email');
$CI->db->from('emails e');
$CI->db->join('user_email ue', 'ue.user_id = e.id', 'left');
$CI->db->where('ue.user_id', $userid);
$query = $CI->db->get(); 
票数 64
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23486536

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档