【问题标题】:Remove displaying duplicate value from database从数据库中删除显示的重复值
【发布时间】:2014-02-25 10:31:18
【问题描述】:

我有亲子关系问题。当我回答家长问题时,它会显示家长和孩子。当我回答孩子时,它会显示父母和孩子。但是,如果我同时回答(父母和孩子),则孩子问题会显示两次。我知道我的查询是错误的。但是找不到。如何从数据库中删除显示的重复数据

【问题讨论】:

  • 如果您简化示例/查询,可能会有更多人尝试帮助您。
  • @Avt:我正在使用它来获得答案。如果我简化我无法从数据库中得到答案
  • 能否在问题中添加查询输出?
  • @Avt:你能帮忙吗
  • 从你的第一张图片中,哪一行 N2 或 N3 应该消失?

标签: ios sql database parent-child


【解决方案1】:

试试这样......

DELETE
FROM MyTable
WHERE ID NOT IN
(
SELECT MAX(ID)
FROM MyTable
GROUP BY
 DuplicateColumn1, DuplicateColumn2, DuplicateColumn3)

【讨论】:

    【解决方案2】:

    很难理解你的查询。您是否尝试过仅添加 DISTINCT 语句?

    SELECT DISTINCT * FROM (here paste your query)
    

    所以你的完整查询将跟随

    SELECT DISTINCT * FROM (
    SELECT a.QM_ID,a.QM_QCM_ID,
           a.QM_Question,a.QM_Type,
           a.QM_Parent_Id,
           c.AM_Answer, 
           c.AM_Comments 
      FROM question_master a 
           INNER JOIN Assessment_master c 
                 ON (c.AM_QM_ID = a.QM_ID 
                     AND c.AM_HNM_ID = %d 
                     AND c.AM_HM_ID = %d 
                     AND c.AM_ASM_Local_Id = %@) 
     WHERE a.QM_Parent_Id = 0 
           AND a.QM_Status = 'A' 
           AND a.QM_QCM_ID = %@ 
           AND a.QM_QRM_Id = %@
    
    UNION
    SELECT b.QM_ID,
           b.QM_QCM_ID,
           b.QM_Question,
           b.QM_Type,
           b.QM_Parent_Id,
           null, 
           null 
      FROM question_master b 
           INNER JOIN Assessment_master d 
                 ON (d. AM_QM_ID = b.QM_Parent_Id 
                     AND d.AM_HNM_ID = %d 
                     AND d.AM_HM_ID = %d 
                     AND d.AM_ASM_Local_Id = %@) 
     WHERE b.QM_Parent_Id != 0 
           AND b.QM_Status = 'A' 
           AND b.QM_QCM_ID = %@ 
           AND b.QM_QRM_Id = %@
    
    UNION
    SELECT b.QM_ID,
           b.QM_QCM_ID,
           b.QM_Question,
           b.QM_Type,
           b.QM_Parent_Id,
           d.AM_Answer, 
           d.AM_Comments 
      FROM question_master b 
           INNER JOIN Assessment_master d 
                 ON (d. AM_QM_ID = b.QM_ID 
                     AND d.AM_HNM_ID = %d 
                     AND d.AM_HM_ID = %d 
                     AND d.AM_ASM_Local_Id = %@) 
     WHERE b.QM_Parent_Id IN (SELECT QM_ID 
                                FROM question_master 
                               WHERE QM_Parent_Id = 0 
                                     AND QM_Status = 'A' 
                                     AND QM_QCM_ID = %@ 
                                     AND QM_QRM_Id = %@)
    )
    

    【讨论】:

    • 当我回答这两个问题时,第二个 UNION 选择查询中的问题。
    • 仅从下方查询重复显示 UNION SELECT b.QM_ID, b.QM_QCM_ID, b.QM_Question, b.QM_Type, b.QM_Parent_Id, null, null FROM question_master b INNER JOIN Assessment_master d ON (d. AM_QM_ID = b.QM_Parent_Id AND d.AM_HNM_ID = %d AND d.AM_HM_ID = %d AND d.AM_ASM_Local_Id = %@) 其中 b.QM_Parent_Id != 0 AND b.QM_Status = 'A' AND b.QM_QCM_ID = %@ AND b.QM_QRM_Id = %@
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 2014-06-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    相关资源
    最近更新 更多