首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

SQL Server 多表聯查:將顏色、尺碼 ID 替換為具體代碼

     編輯:程式設計疑難解答

場景描述

擁有三張表:主表 OOO 存儲款號、顏色 ID、尺碼 ID;顏色表與尺碼表分別存儲 ID 與對應代碼。需求是在查詢結果中,將顏色 ID、尺碼 ID 替換為對應的 colorid、sizeid,或直接拼接成「款號+顏色代碼+尺碼代碼」的條碼信息。

解決方案:LEFT JOIN 多表關聯

SELECT 
    A.*, 
    B.colorid, 
    C.sizeid
FROM OOO AS A
LEFT JOIN 顏色表 AS B ON A.顏色id = B.id
LEFT JOIN 尺碼表 AS C ON A.尺碼id = C.id;

關鍵點解析

  • LEFT JOIN:保證主表 OOO 的所有記錄均被保留,即使顏色表或尺碼表中無對應 ID,結果仍會顯示主表字段,關聯字段為 NULL。
  • 別名簡寫:使用 A、B、C 簡化表名引用,提升 SQL 可讀性。
  • 字段選擇:A.* 獲取主表所有列,B.colorid、C.sizeid 精確獲取所需代碼,避免 SELECT * 帶來的性能與維護隱患。

進階應用

若需直接生成條碼字符串,可在 SELECT 列表中使用拼接函數(SQL Server 使用 + 或 CONCAT):

SELECT 
    A.款號 + B.colorid + C.sizeid AS 條碼信息
FROM OOO AS A
LEFT JOIN 顏色表 AS B ON A.顏色id = B.id
LEFT JOIN 尺碼表 AS C ON A.尺碼id = C.id;

掌握 JOIN 語法,輕鬆應對各類多表關聯查詢需求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved