首頁 > 資料庫 > mysql教程 > 如何從單一 SQL 行中的多個表中檢索行計數?

如何從單一 SQL 行中的多個表中檢索行計數?

Patricia Arquette
發布: 2025-01-11 13:56:44
原創
214 人瀏覽過

How to Retrieve Row Counts from Multiple Tables in a Single SQL Row?

使用 SQL 從多個表中高效檢索行計數

從多個 SQL 表獲取行計數並將其顯示在單行中可能很棘手。 此範例示範如何從 tab1tab2 擷取計數,將結果顯示為:

<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: 這將建立一行來保存我們的結果(count1count2)。
  • DUAL 表: 提供單行供外部 SELECT 使用。
  • 子查詢:獨立計算tab1tab2的行數。
  • AS 子句: 為結果欄位指派有意義的名稱(count1count2)。

此方法有效地將兩個表中的計數合併到一個格式整齊的行中。

以上是如何從單一 SQL 行中的多個表中檢索行計數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板