这是我的详细信息表:
这是我的联系表:
详细信息表中有两行,联系表中有4行(每个详细信息有2行)。当我使用连接查询时,我得到4个结果行,但我只想要2行(一行详细信息行与相应详细信息的一个联系人)。
我的疑问:
$this->db->select('*');
$this->db->from('dots_center_detail');
$this->db->join('dots_center_contact', 'dots_center_contact.registration_id = dots_center_detail.registration_id','left');
答案 0 :(得分:1)
使用select('DISTINCT *')
代替select('*')
可能会提供您需要的结果。值得一试。
或者您可以创建这样的视图以配合您的表定义。
CREATE OR REPLACE VIEW dots_center_unique_contact AS
SELECT DISTINCT * FROM dots_center_contact;
然后参考您的加入操作中的dots_center_unique_contact
视图。
长期最好的选择是弄明白为什么你有重复的行,并收紧你的业务规则,这样你就不会。
答案 1 :(得分:1)
试试这个
$this->db->query("
SELECT DISTINCT dots_center_detail.registration_id, dots_center_contact.contact
FROM dots_center_detail
LEFT JOIN dots_center_contact ON dots_center_contact.registration_id = dots_center_detail.registration_id
")