2017-05-30 66 views
0

我有两个表,例如:MySQL的:计算两个表中有多少行是相同的

+---------+---------+ 
| Table A | Table B | 
+---------+---------+ 
|  52 |  12 | 
|  64 |  6 | 
|  36 |  69 | 
|  48 |  52 | 
|  12 |   | 
+---------+---------+ 

而且我想找到这些表的有多少行是在一个MySQL查询相同。 有什么帮助吗?

(在我们的例子)

+0

这些表的列名是什么? –

+0

向我们展示您的数据表结构 – hiule

+0

使用简单的内部连接? – pringi

回答

1

您可以使用EXISTS找到两个表之间的匹配行,然后使用COUNT

查询

select count(*) from TableA a 
where exists(
    select 1 from TableB b 
    where a.col1 = b.col1 
); 

而如果算上唯一值,

查询

select count(distinct *) from TableA a 
where exists(
    select 1 from TableB b 
    where a.col1 = b.col1 
); 
0

您可以使用JOIN语句来计算它:

SELECT COUNT(*) FROM tb1 
JOIN tb2 ON tb1.ColumnA = tb2.ColumnA 
0

使用INNER JOIN
假设表A有列A和表B有B柱
所以查询将是:

SELECT count(*) FROM TableA INNER JOIN TableB ON (A = B); 
0

你可以使用INNER JOIN

SELECT COUNT(*) FROM TableA A INNER JOIN TableB B on A.col1=B.col1

相关问题