LuckyTemplates 用戶的 SQL 子查詢

LuckyTemplates 用戶的 SQL 子查詢

在本教程中,我們將學習和理解如何在 SQL 中使用子查詢。子查詢是另一個查詢中的查詢。我們也可以將其稱為更大查詢中的嵌套查詢。它必須用方括號括起來,主要用於WHERE子句中。

LuckyTemplates 用戶的 SQL 子查詢

當我們需要從多個表中獲取數據時,我們可以在 SQL 中使用子查詢。

例如,假設我們有這兩個表。 

LuckyTemplates 用戶的 SQL 子查詢

這是我們需要解決的問題。我們需要獲取在 2022 年購買的客戶的客戶姓名、電子郵件 ID 和地址。僅使用Customers表是不可能的,因為該表上沒有銷售或訂單日期列的記錄。我們還有其他方法可以解決這個問題。

LuckyTemplates 用戶的 SQL 子查詢

目錄

通過多個單獨的查詢手動獲取數據

首先,由於我們有來自Sales表的CustomerId ,我們可以做的是從Sales表的OrderDate列中獲取 2022 年購買的人的客戶 ID 。 

LuckyTemplates 用戶的 SQL 子查詢

假設我們現在有從 2022 年開始購買的人的客戶 ID(1、3、5、7、8、9… ),然後我們可以創建另一個查詢,根據他們的客戶表通過客戶表獲取這些客戶的信息身份證

LuckyTemplates 用戶的 SQL 子查詢

這種方法的問題是我們手動完成了這個過程。首先,我們需要獲取客戶的ID,然後手動輸入到下一個查詢中,以獲取客戶的信息。 

SQL中通過子查詢自動獲取數據

我們可以通過使用SQL中的子查詢自動完成,而不是手動輸入他們的 ID 。我們可以將它與IN條件一起使用,以自動帶來客戶的 ID 或我們解決某個問題所需的任何數據。 

這是我們可以做些什麼來解決問題的一個例子。在此示例查詢中,我們根據來自嵌套查詢的客戶 ID 從Customers表中選擇客戶的姓名、地址和電子郵件 ID。在此嵌套查詢中,客戶 ID 來自Sales表,訂單日期為 2022 年。

LuckyTemplates 用戶的 SQL 子查詢

使用這種技術,我們不需要手動輸入從 2022 年開始購買的人的客戶 ID。它將自動從我們創建的嵌套查詢中獲取。 

通過 SQL Server Management Studio 的示例子查詢場景

現在讓我們有一個類似的場景,這一次,讓我們在 SQL Server Management Studio ( SSMS )中進行。在此示例中,我們有另外兩個表SalesOrderHeaderSalesTerritory。 

LuckyTemplates 用戶的 SQL 子查詢

我們的目標是從美國國家/地區獲取有關SalesOrderHeader的所有信息。在SalesOrderHeader上,我們沒有國家/地區列。 

LuckyTemplates 用戶的 SQL 子查詢

但是,我們可以使用在SalesTerritory表中也可用的TerritoryID列。在那裡我們還可以獲得國家/地區信息,即CountryRegionCode列。

LuckyTemplates 用戶的 SQL 子查詢

LuckyTemplates 用戶的 SQL 子查詢

同樣,我們可以通過首先從包含美國國家/地區的SalesTerritory表中獲取TerritoryID來手動執行此操作。 

LuckyTemplates 用戶的 SQL 子查詢

然後,我們將在美國國家/地區區域下獲得TerritoryID列表。

LuckyTemplates 用戶的 SQL 子查詢

之後,我們可以通過在查詢中手動輸入這些 ID 來獲得我們想要的結果。

LuckyTemplates 用戶的 SQL 子查詢

LuckyTemplates 用戶的 SQL 子查詢

但是我們可以通過使用子查詢輕鬆地完成,而不是手動輸入 ID。我們只需要用我們的第一個查詢替換它,我們在SalesTerritory表上獲取帶有美國國家/地區的 TerritoryID 。

LuckyTemplates 用戶的 SQL 子查詢

然後它將為我們提供與手動過程相同的結果。 

LuckyTemplates 用戶的 SQL 子查詢

結論

總而言之,我們已經了解了 SQL 中子查詢的用法和重要性。我們還討論了創建某些子查詢的正確語法。我們當然可以創建多個查詢來創建獲取特定輸出的手動過程。但是,我們可以使用帶有WHERE子句和IN條件的子查詢來自動從另一個表中獲取某些數據。

希望您能夠使用此技術更有效地使用您未來的查詢。

一切順利,

哈菲茲

SQL Server 下載和安裝
SQL 為 LuckyTemplates 用戶 - 新的 LuckyTemplates 課程
從多個數據源查詢數據


什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

什麼是 Python 中的自我:真實世界的例子

如何在 R 中保存和加載 RDS 文件

如何在 R 中保存和加載 RDS 文件

您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。

回顧前 N 個工作日——DAX 編碼語言解決方案

回顧前 N 個工作日——DAX 編碼語言解決方案

在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

在 LuckyTemplates 中使用多線程動態視覺技術展示見解

本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。

LuckyTemplates 篩選上下文簡介

LuckyTemplates 篩選上下文簡介

在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

使用 LuckyTemplates 在線服務中的應用程序的最佳技巧

我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

隨著時間的推移分析利潤率變化——使用 LuckyTemplates 和 DAX 進行分析

了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。

DAX Studio 中數據緩存的物化想法

DAX Studio 中數據緩存的物化想法

本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。

使用 LuckyTemplates 進行業務報告

使用 LuckyTemplates 進行業務報告

如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的

什麼是 LuckyTemplates 網關?所有你必須知道的