从多个 SQL 表获取行计数并将其显示在单行中可能很棘手。 此示例演示如何从 tab1
和 tab2
检索计数,将结果显示为:
<code>Count_1 Count_2 123 456</code>
UNION ALL
失败一种常见但有缺陷的方法使用 UNION ALL
:
<code class="language-sql">select count(*) Count_1 from schema.tab1 union all select count(*) Count_2 from schema.tab2</code>
这会为每个计数生成单独的行,而不是我们需要的单行输出。
DUAL
表该解决方案利用子查询和DUAL
表(提供单行的虚拟表)。 这是正确的查询:
<code class="language-sql">SELECT ( SELECT COUNT(*) FROM tab1 ) AS count1, ( SELECT COUNT(*) FROM tab2 ) AS count2 FROM dual;</code>
细分:
SELECT
: 这将创建一行来保存我们的结果(count1
和 count2
)。DUAL
表: 提供单行供外部 SELECT
使用。tab1
和tab2
的行数。AS
子句: 为结果列分配有意义的名称(count1
、count2
)。此方法有效地将两个表中的计数合并到一个格式整齐的行中。
以上是如何从单个 SQL 行中的多个表中检索行计数?的详细内容。更多信息请关注PHP中文网其他相关文章!