我有两张桌子,例如:
+---------+---------+
| Table A | Table B |
+---------+---------+
| 52 | 12 |
| 64 | 6 |
| 36 | 69 |
| 48 | 52 |
| 12 | |
+---------+---------+
我想在一个MySQL查询中找到这些表中有多少行相同。 有什么帮助吗?
(在我们的示例中 2 )
答案 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