MySQL:计算两个表的行数是否相同

时间:2017-05-30 10:39:58

标签: mysql sql count rows equals

我有两张桌子,例如:

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

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

(在我们的示例中 2

4 个答案:

答案 0 :(得分: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
);

答案 1 :(得分:0)

您可以使用JOIN语句对其进行计数:

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

答案 2 :(得分:0)

使用INNER JOIN
假设TableA有列A,TableB有列B
所以查询将是:

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

答案 3 :(得分:0)

您可以使用INNER JOIN

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