2017-05-30 68 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

相關問題