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

xyhw6mcr  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(372)

表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 在两张table上?
我正在尝试下面的查询,但得到大量重复的数据。

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

请纠正我。谢谢

igetnqfo

igetnqfo1#

我想你真的想要一个 UNION :

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

我们使用 UNION (而不是 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公司

相关问题