返回table1中的count等于table2中的count的所有id

时间:2014-02-24 20:02:36

标签: mysql sql

我正在通过id领域加入两个表。我们将这些表称为p和k。在这种情况下,kp的超集; p中的所有东西都在k中。相同的ID可能会多次出现或有多个条目。

但是,我想知道我在p中显示的ID次数是否与k中显示的次数完全相同。如果是,那些是我想在查询中显示的ID。

这就是我真正要开始的。

SELECT
  p.id
FROM
  all_files k,
  specific_files p
WHERE
  p.id = k.id

如何做到这一点?

1 个答案:

答案 0 :(得分:2)

首先,您应该始终使用正确的显式连接而不是隐式连接。现在,对于您的查询,您可以执行以下操作:

SELECT *
FROM (  SELECT id, COUNT(*) AS N
        FROM specific_files
        GROUP BY id) AS p
INNER JOIN (SELECT id, COUNT(*) AS N
            FROM all_files
            GROUP BY id) AS k
    ON p.id = k.id
    AND p.N = k.N