0
 SELECT S2.A
 FROM S1, S2
 WHERE S1.A = S2.A
 GROUP BY S1.A
 HAVING COUNT(*) > 1;

これは有効なクエリですか?

私が理解していることから、select句にあるものはすべてgroup by句にある必要がありますが、このクエリはそれに従いません。

ただし、このクエリを見ると、S1.A = S2.A のように S2 から A 属性値を選択しているため、S1 の特定の A 値の数が複数のレコードを持つため、意味があります。

4

1 に答える 1

2

group byさて、MYSQLで集計を使用する場合、select句で集計されていないものを使用する必要はありません(したがって、仮定はANSI的に正しいですが、実際にはmysqlではありません)。

しかしS1.A = S2.A、なぜあなたは選択しないのですS1.Aか?

ところで、 を使用する必要がJOINあります。クエリは次のように記述します。

SELECT S1.A
FROM S1
INNER JOIN S2 on S1.A = S2.A
GROUP BY S1.A
HAVING COUNT(*) > 1
于 2013-10-24T06:19:38.793 に答える