首頁 > 資料庫 > mysql教程 > 如何從表中選擇具有特定角色(1、2 和 3)的使用者 ID?

如何從表中選擇具有特定角色(1、2 和 3)的使用者 ID?

Patricia Arquette
發布: 2025-01-19 17:06:09
原創
743 人瀏覽過

How to Select User IDs with Specific Roles (1, 2, and 3) from a Table?

擷取具有多個角色(1、2 和 3)的使用者 ID

本指南示範如何從具有 useridroleid 列的表中高效選擇擁有角色 1、2 和 3 的唯一使用者 ID。 我們將探索兩種有效的 SQL 查詢方法。

方法一:使用 HAVING 子句聚合查詢

此方法使用聚合和過濾:

<code class="language-sql">SELECT userid
FROM userrole
WHERE roleid IN (1, 2, 3)
GROUP BY userid
HAVING COUNT(*) = 3;</code>
登入後複製

查詢過濾 roleid 為 1、2 或 3 的行。然後,它按 userid 對結果進行分組,並使用 HAVING COUNT(*) = 3 確保僅包含具有所有三個角色的使用者。

方法二:自連線查詢

或者,自 JOIN 也可以達到相同的結果:

<code class="language-sql">SELECT t1.userid
FROM userrole t1
INNER JOIN userrole t2 ON t1.userid = t2.userid AND t2.roleid = 2
INNER JOIN userrole t3 ON t1.userid = t3.userid AND t3.roleid = 3
WHERE t1.roleid = 1;</code>
登入後複製

此查詢將 userrole 表與其自身連接三次。 它確保 userid 具有 roleid 1,然後連接以查找相同的 useridroleid 2,最後 roleid 3。 INNER JOIN 確保僅傳回具有所有三個角色的使用者。 對於非常大的表,此方法可能比聚合方法效率低。

以上是如何從表中選擇具有特定角色(1、2 和 3)的使用者 ID?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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