兩張表:
需求:輸入姓名(如「張三」),查出其所有稱號代碼,關聯表二獲取「人數 × 年限」並求和。示例:張三結果 = 1×1 + 2×3 + 1×1 = 8。
SELECT SUM(t2.研究生支持人數 * t2.研究生支持年限) AS total_score
FROM 表二 t2
WHERE t2.稱號代碼 IN (
SELECT 稱號代碼 FROM 表一 WHERE 姓名 = '張三'
);
SELECT SUM(t2.研究生支持人數 * t2.研究生支持年限) AS total_score
FROM 表一 t1
JOIN 表二 t2 ON t1.稱號代碼 = t2.稱號代碼
WHERE t1.姓名 = '張三';
表一(姓名)、表一(稱號代碼)、表二(稱號代碼) 建立索引,加速關聯與篩選。COALESCE(人數,0) * COALESCE(年限,0) 避免結果為 NULL。SELECT t1.姓名, SUM(COALESCE(t2.研究生支持人數,0) * COALESCE(t2.研究生支持年限,0)) AS total_score
FROM 表一 t1
LEFT JOIN 表二 t2 ON t1.稱號代碼 = t2.稱號代碼
GROUP BY t1.姓名
ORDER BY total_score DESC;


兩表聯合計算核心是「關聯 → 乘積 → 聚合」。使用 JOIN + SUM(expr) 單條 SQL 即可高效完成,避免應用層多次查詢循環。注意索引與空值處理,可直接用於報表、排名等場景。