【问题标题】:Is there any way to count matches between 2 tables using sql?有没有办法使用 sql 计算 2 个表之间的匹配?
【发布时间】:2012-08-23 17:14:47
【问题描述】:

好的...我需要做这个简单的任务...我可以用 java 或 python 以简单的方式完成... 但是有什么方法可以使用 sql 并将工作委托给数据库引擎而不是 jvm 或 python?

我有表 1 和表 2

例如

表 1 有 2 个存储的标题...

“爱是一种感觉”、“哈利波特”

表 2 有 3 个存储的标题...

“abc”、“物理1”、“旅行”

有些不同,但有些可能是巧合......

我需要将表 2 的每个条目与从 table1 中选择标题返回的所有行进行比较...

应该是这样的

它将“love is a feel”与“abc”、“physics 1”和“the trip”进行比较,如果找到匹配项则增加计数...

它应该对所有的名字都这样做,最后我想知道我有多少巧合......

正如我所说,它可以通过查询使用 java 或任何语言来完成:

results = rows returned by using "select title from table1";
while results.next () {
 results2 = rows returned by using "select title from table2";

 while results2.next(){
    if current results == current results2
        count++;    
  }
}

print count

但这不是我需要的......

【问题讨论】:

    标签: java mysql sql


    【解决方案1】:
    SELECT COUNT(*) FROM table1 INNER JOIN table2 ON table1.title = table2.title
    

    【讨论】:

      【解决方案2】:

      尝试加入两个表,

      SELECT  a.title, COUNT(b.title) totalMatch
      FROM    table1 a
                  LEFT JOIN table2 b
                      On a.title = b.title
      GROUP BY a.Title
      

      通过使用LEFT JOIN,如果没有匹配,它将显示0

      SQLFiddle Demo

      【讨论】:

        【解决方案3】:
        SELECT COUNT(*) FROM table1 JOIN table2 ON table1.title = table2.title
        

        了解SQL joins

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-01-10
          • 2019-01-15
          • 1970-01-01
          • 1970-01-01
          • 2017-05-24
          相关资源
          最近更新 更多