首页 文章

如何在两个不同的表中检查两列数据的存在? MySQL的

提问于
浏览
0

我在两个不同的数据库中有两个不同的表..

我想要做的是检查另一个表中是否存在两列的数据..如果确实存在则计算它,并且在最后我想要在另一个表中匹配的记录数 .

例如:

表格1

column_1 value =“dog”

column_2 value =“apple”

TABLE_2

column_1 value =“dog”

column_2 value =“orange”

所以这里的第一列值存在于两个表中,但第二列是不同的,所以我不想计算它 . 我想计算同一记录中两个值存在的位置 .

ps:column_1和column_2都不是主键

是否有使用MySQL的解决方案?因为我用java来解决这个问题,但需要很长时间才能获得500万条记录 .

2 回答

  • 1

    在两个表上执行 INNER JOIN

    SELECT COUNT(*)
    FROM table_1 t1
    INNER JOIN table_2 t2
        ON t1.column_1 = t2.column_1
        AND t1.column_2 = t2.column_2
    
  • 1

    如果我正确理解你,一个选择是使用 exists

    select * 
    from table1 t1
    where exists (
        select 1
        from table2 t2 
        where t1.column1 = t2.column1 and
              t1.column2 = t2.column2
    )
    

    这将返回第一个表中的行列表,这些行在第二个表中具有相应的匹配行 .

相关问题