我正在通过id领域加入两个表。我们将这些表称为p和k。在这种情况下,k
是p
的超集; p中的所有东西都在k中。相同的ID可能会多次出现或有多个条目。
但是,我想知道我在p
中显示的ID次数是否与k
中显示的次数完全相同。如果是,那些是我想在查询中显示的ID。
这就是我真正要开始的。
SELECT
p.id
FROM
all_files k,
specific_files p
WHERE
p.id = k.id
如何做到这一点?
答案 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