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 回答