【mysql】SQL自連接:什么時候需要,什么時候不需要?

SQL自連接:什么時候需要,什么時候不需要?

通過具體示例和對比解析,徹底搞懂SQL自連接的使用場景

在處理SQL查詢時,尤其是當表中存在自引用關系(如referee_id引用同一張表的id)時,很多開發者會疑惑:這個查詢到底需不需要自連接?本文將通過多個具體示例,帶你徹底弄清何時只需簡單篩選,何時必須使用自連接。

一、一個引子:為什么這個查詢不需要自連接?

來看一個經典問題:

題目:尋找用戶推薦人

表結構如下:

CREATE TABLE Customer (id INT PRIMARY KEY,name VARCHAR(255),referee_id INT
);

要求:找出所有被非2號用戶推薦,或沒有被任何用戶推薦的客戶姓名。

很多人的第一反應:既然referee_id引用了同一張表的id,是不是應該自連接?

正確答案:不需要自連接。

SELECT name 
FROM Customer 
WHERE referee

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98384.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98384.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98384.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

「美」創新在于人,而不是產品 - AxureMost 落葵網

添加圖片注釋,不超過 140 字(可選) 第一章:創新的心理學 創新與心理安全 蠟燭問題:卡爾鄧克爾的蠟燭問題實驗揭示了創造性思維的重要性。通過顛覆對盒子用途的先入為主觀念,參與者能夠找到創新性的解決方案…

新規則,新游戲:AI時代下的戰略重構與商業實踐

當你的客服AI能夠真正像員工一樣理解客戶的行業術語,當AI能主動從大量的客戶咨詢中篩選出高價值潛在客戶 —— 這已經不再是理想中才能存在的場景,而是當下 “人工智能 ” 行動深入推進中,企業智能化轉型的真實寫照。 "人工智能 " …

ScanNet: Richly-annotated 3D Reconstructions of Indoor Scenes 數據集構建

paper link: paperlink Abstract: 這個數據集是個RGB-D視頻數據集,在707個不同空間中獲取了1513個掃描的場景,250w個視圖,并且標注了相機位姿,表面重建,語義分割。本數據集共有20人掃描500名工作者進行標注。 數據集…

c語言期末復習

一、選擇題(10道) 1、以下哪個不是C語言的關鍵字? A) int B) float C) string D) while (答案:C) 2、表達式 5 / 2 的結果是: A) 2.5 B) 2 C) 3 D) 2.0 (答案:B) 3、指針變量存儲的是: A) 變量的值 B) 變量的地址 C) 變量的類型 D) 變量的名稱 (答案:B) 4、以…

JLINK 調試器單步調試單片機

0 JLINK 調試器單步調試單片機 1 物理層1.1 調整電壓和開發板一致2 環境搭建 2.1 安裝 JLink_Windows_V862_x86_642.2 vscode 配置 {"version": "0.2.0","configurations": [{"name": "(gdb) 啟動","type": "…

大模型(LLM)安全保障機制(技術、標準、管理)

大模型(LLM)的安全保障涉及技術、標準、管理等多個層面。下面我將結合其核心風險,為你梳理主要的安全機制、相關標準框架以及一些實踐建議。為了讓您快速了解大模型面臨的主要風險及相應的應對機制,我準備了一個表格:安…

虛擬機之CentOS、網絡設置的有趣問題

前言 年初射出的子彈,今天中了。 年初埋下的坑,今年踩了。 回首過往,why? because:當時下載VMware的時候。沒有設置網絡。 重點——使用VMware安裝CentOS 9 使用VMware安裝CentOS Stream 9_嗶哩嗶哩_bilibili 總…

Biomni:來自斯坦福的通用型生物醫學 AI 智能體,科研“虛擬助手“來了!

在當今生物醫學研究中,實驗手段和數據量正以前所未有的速度膨脹。從基因組學、單細胞組學到多模態數據,再到可穿戴設備的健康監測,科研人員每天都在與龐大的數據和復雜的分析流程打交道。 然而,實驗設計瑣碎、工具分散、跨學科整合…

移植后 eto 陽性 干擾素 α1b、白介素 - 2 dli

在異基因造血干細胞移植(allo-HSCT)后仍存在 AML1-ETO(ETO)融合基因陽性的患者中,干擾素 α1b 聯合白介素 - 2(IL-2) 是臨床中探索用于清除微小殘留病(MRD)、降低復發風險…

防止接口被薅羊毛(防刷)(DAY 002)

背景:短信驗證碼接口被不法分子用來做灰產(短信郵箱轟炸機) 如何避免??的?站成為”?雞“或者被刷? 增加圖形驗證碼(開發?員)單IP請求次數限制(開發?員) 防刷之圖形驗證碼&…

【RabbitMQ】----RabbitMQ 的7種工作模式

1.Simple(簡單模式) P:?產者,也就是要發送消息的程序 C:消費者,消息的接收者 Queue:消息隊列,圖中??背景部分.類似?個郵箱,可以緩存消息;?產者向其中投遞消息,消費者從其中取出消息. 特點:?個?產者P,?個消費者C,消息只能被消費?次.也稱為點對點(Point-to-P…

今日分享:C++ -- list 容器

😎【博客主頁:你最愛的小傻瓜】😎 🤔【本文內容:C list容器 😍】🤔 --------------------------------------------------------------------------------------------------------------------…

【Python】數據可視化之分布圖

分布圖主要用來展示某些現象或數據在地理空間、時間或其他維度上的分布情況。它可以清晰地反映出數據的空間位置、數量、密度等特征,幫助人們更好地理解數據的內在規律和相互關系。 目錄 單變量分布 變量關系組圖 雙變量關系 核密度估計 山脊分布圖 單變量分布…

DDD+WebAPI實戰

DDD+WebAPI實戰 DDD(領域驅動設計,Domain-Driven Design)是一種面向對象的設計方法,它強調將業務邏輯封裝在模型中,并通過這些模型來驅動整個應用的設計。在.NET環境中,特別是在使用ASP.NET Core和Web API構建應用時,DDD可以幫助我們更好地組織代碼,使得業務邏輯更加清…

人力資源管理的思維方法學習筆記1

北京師范大學政府管理學院1.課程介紹: 講述視角上,本課程側重人力資源管理的思維方式,即人力資源管理理論和時間的不同視角和主導范式的分析。這既是對人力資源管理理論發展的凝練,也是對人力資源管理實踐演進過程的總結。對于把握…

適應新環境:Trae編輯器下的IDEA快捷鍵定制

介紹:學習如何在Trae編輯器中配置IntelliJ IDEA風格的快捷鍵,減少開發環境間的切換成本,提升編碼效率。通過安裝插件或手動調整,讓你更快適應新工具大家好,我是凱哥Java本文標簽:代碼編輯效率、Trae快捷鍵、…

基于YOLO8的汽車碰撞事故檢測系統【數據集+源碼+文章】

基于YOLOv8和Streamlit的汽車碰撞事故檢測系統 文末附下載地址 開發目的 隨著城市化進程的加快和機動車保有量的持續攀升,道路交通安全問題日益突出,汽車碰撞事故頻發不僅嚴重威脅駕乘人員的生命安全,也對公共秩序、應急響應效率及交通管理…

Unity FARO 測量臂:從零構建實時數字孿生系統

前言:當精準測量遇見實時渲染 在高端制造、質量檢測和逆向工程領域,法奧 (FARO) 測量臂是精準的代名詞。它能以亞毫米級的精度捕捉現實世界中的三維坐標。現在,想象一下,如果我們將這種精度與 Unity 的強大實時渲染能力結合起來,會發生什么? 我們將得到一個數字孿生 (D…

延遲 隊列

概念 延遲隊列顧名思義就是消息不立即發送給消費者消費,而是延遲一段時間再交給消費者。 RabbitMQ本身沒有直接支持延遲隊列的的功能,但是可以通過前面所介紹的TTL死信隊列的方式組合 模擬出延遲隊列的功能. RabbitMQ 有些版本還支持延遲隊列的插件安…

Windows+Docker一鍵部署CozeStudio私有化,保姆級

在 ?Windows環境? 下,通過docker,使用 ?火山引擎Doubao-Seed-1.6模型,面向 ?小白新手? 的 ?Coze Studio私有化部署詳細步驟。整個過程分為四大階段,包含每一步的指令、成功標志。 Coze Studio 私有化部署指南(W…