2012-03-23 72 views
-1

有没有一种方法可以使用COUNT()AS number_matches来统计表之间的大量匹配行?Mysql:计算多个表内两组值之间的匹配批量?

我想包括某种循环方法,以满足搜索算法,但在此之前,我想知道/希望有一个更简单的方法。

TABLE_1

  • 行1:

    数字_1)1

    NUMBER_2)2

    NUMBER_3)3

    数_4)4

  • 第2列:

    数字_1)2

    NUMBER_2)4

    NUMBER_3)5

    NUMBER_4)6

比较与

TABLE_2

  • 行1:

    数字_1)2

    NUMBER_2)4

    NUMBER_3)6

    NUMBER_4)8

RESULT

  • 行1:

    number_matches)2

  • 第2列:

    number_matches)3

+0

您的示例显示每个表内的行吗?那些行或列? – Marco 2012-03-23 14:41:06

+0

他们是专栏,我已经更清楚地说明了这个例子。对困惑感到抱歉。 – 2012-03-23 14:55:17

+0

每个表格都有很多行,对吧? – Marco 2012-03-23 15:01:18

回答

1

鉴于你的例子,我觉得你要计算的加入记录的金额,对不对?

select count(*) from table_1 t1 
join table_2 t2 on t1.col = t2.col 
+0

中的许多行进行测试。或者对于我们这些鄙视简单查询的连接语法的人:select table(t1),table_2 t2,其中t1。 col = t2.col – 2012-03-23 14:49:48

+1

@AndrewEdvalson:您使用的语法是从JOIN中的引擎转换而来的;总的来说,在更复杂的查询中使用JOIN而不是语法总是更好,因为这可以避免表的笛卡尔积,从而产生巨大的查询! – Marco 2012-03-23 14:58:40

+0

LOL,在我的答案评论中只是没有SQL反模式参数:P – 2012-03-23 15:00:43