CodeIgniter中JOIN语句的PHP问题
我有两个表:“事件存档”和“演示用户”。在事件表中,每个事件都有一个唯一的CodeIgniter中JOIN语句的PHP问题,php,codeigniter,join,foreach,Php,Codeigniter,Join,Foreach,我有两个表:“事件存档”和“演示用户”。在事件表中,每个事件都有一个唯一的ref_id值、一个demo_id值(参与事件的演示者的用户id)和一个client_id值(参与事件的客户的用户id)。在演示表中,每个演示者都有一个唯一的id值,该值对应于事件表中的demo\u id 我想做的是列出所有参与某个客户所做活动的示威者(从演示表中)。我正在使用会话数据获取特定客户端的用户ID 假设client_id的值为4,我想列出所有共享了一个事件(即共享了表中的一行)的个人演示者。我目前正在我的Cod
ref_id
值、一个demo_id
值(参与事件的演示者的用户id)和一个client_id
值(参与事件的客户的用户id)。在演示表中,每个演示者都有一个唯一的id
值,该值对应于事件表中的demo\u id
我想做的是列出所有参与某个客户所做活动的示威者(从演示表中)。我正在使用会话数据获取特定客户端的用户ID
假设client_id
的值为4,我想列出所有共享了一个事件(即共享了表中的一行)的个人演示者。我目前正在我的CodeIgniter模型中使用:
function demos($mid){
$this->db->select('demo_users.*');
$this->db->from('demo_users');
$this->db->join('events_archive','events_archive.demo_id = demo_users.id');
$this->db->where('events_archive.client_id',$mid);
$this->db->limit(10);
$this->db->order_by('users_demonstrators.products_sold','asc');
$demos = $this->db->get();
foreach($demos->result() as $demo){
echo $demo->first_name;
}
}
但它并没有单独列出示威者,而是一次又一次地重复他们。它没有列出演示器A、演示器D、演示器F等。它列出了演示器A、演示器A、演示器A等。有人知道我哪里出错了吗?而不是
$this->db->select('demo_users.*)
试试$this->db->select('*')
而不是echo$demo->first\u name代码>尝试变量转储($demo)代码>
我的猜测是,演示器A
在事件档案中有许多记录。您将两个表连接起来,因此,events\u archive
中的每个匹配记录都会与demo\u用户的列一起添加。这就是为什么会有多个demo\u用户。*
-但是记录有不同的事件存档。*
值
你可能想试试。我添加了$this->db->distinct()代码>并且它工作得非常好。谢谢