我有3个mysql表。
Table 1 user
id | name
Table 2 emails
id | email
Table 3 user_email
user_id | email_id
我没有查询多表的经验。
使用codeigniter活动记录,我想根据用户ID找出用户的电子邮件地址,请告知以下代码是否正确?
$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();
您有错误的where子句,您需要将表中的user_id进行比较,将电子邮件的id与提供的ID进行比较 $user_id
$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();
一种更有用的方法是为表命名,以使具有相同列的表不会产生任何混淆
$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();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句