Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
SELECT COUNT(*) FROM ( SELECT 1 FROM ... UNION SELECT 1 FROM ... UNION SELECT 1 FROM ... ) as tmp_table
複数の行を含む結果セットにもかかわらず、COUNT(*)常に 1 が返されます...なぜですか?
COUNT(*)
UNION SELECT結果は自動的にグループ化されます。つまり、重複する行は表示されません。必要なUNION ALL SELECT...のは です。結果はグループ化されず、重複した行が表示されます。
UNION SELECT
UNION ALL SELECT...
常に1を選択するため、行が重複しているため、1でグループ化されます。