4
SELECT COUNT(*) FROM (

SELECT 1 FROM ... 
UNION SELECT 1 FROM ...
UNION SELECT 1 FROM ...

) as tmp_table

複数の行を含む結果セットにもかかわらず、COUNT(*)常に 1 が返されます...なぜですか?

4

1 に答える 1

9

UNION SELECT結果は自動的にグループ化されます。つまり、重複する行は表示されません。必要なUNION ALL SELECT...のは です。結果はグループ化されず、重複した行が表示されます。

常に1を選択するため、行が重複しているため、1でグループ化されます。

于 2012-08-05T10:39:29.610 に答える