如何删除mysql中的重复数据?

时间:2017-08-16 17:24:16

标签: php mysql codeigniter

这是我的详细信息表:

enter image description here

这是我的联系表:

enter image description here

详细信息表中有两行,联系表中有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');

2 个答案:

答案 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
")