代码之家  ›  专栏  ›  技术社区  ›  Ram Chander Dev Ewerton

如何从两个不同的表中获取数据(没有重复的记录)?两个表都有共同的值

  •  2
  • Ram Chander Dev Ewerton  · 技术社区  · 6 年前

    表1

    newpancard
    
    id | name | cardno | status |
    -----------------------------
    1  | name1| 909099 | done   |
    2  | name2| 800099 | done   |
    3  | name3| 965099 | pending|
    

    表2

    oldpancard
    
    id | name | cardno | status |
    -----------------------------
    1  | name4| 111119 | done   |
    2  | name5| 323239 | done   |
    3  | name6| 734349 | pending|
    4  | name7| 609099 | done   |
    

    我们能从两个表中获取数据吗 status = done 在两张桌子上?

    我正在尝试以下查询,但批量获取重复数据。

    SELECT tb1.*, tb2.* 
    FROM `newpancard` tb1 
    JOIN `oldpancard` tb2 
      ON tb1.status = tb2.status
    

    请纠正我。谢谢

    1 回复  |  直到 6 年前
        1
  •  5
  •   Nick SamSmith1986    6 年前

    我想你真的想 UNION :

    SELECT * FROM newpancard WHERE status='done'
    UNION
    SELECT * FROM oldpancard WHERE status='done'
    

    我们用一个 工会 (而不是 UNION ALL )所以我们不会从 newpancard oldpancard

    输出(来自样本数据):

    id  name    cardno  status
    1   name1   909099  done
    2   name2   800099  done
    1   name4   111119  done
    2   name5   323239  done
    4   name7   609099  done
    

    SQLFiddle