首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 跨表查詢實戰:隱式內連接語法與字段提取範例

     編輯:MySQL 資料庫相關知識

場景

兩表:orders(訂單主表)、case(工單表),通過 order_id 關聯。

SQL 範例

SELECT
    c.id,
    c.order_id,
    c.title,
    c.content,
    c.create_time,
    o.last_pic
FROM `orders` o, `case` c
WHERE c.order_id = o.order_id
ORDER BY c.id DESC
LIMIT 15;

語法說明

  • FROM a, b WHERE a.x = b.x 為**隱式內連接**,等價於 INNER JOIN ... ON ...。
  • 建議改用顯式 JOIN,可讀性更強、不易漏寫條件導致笛卡爾積。

顯式 JOIN 改寫

SELECT
    c.id, c.order_id, c.title, c.content, c.create_time,
    o.last_pic
FROM `case` c
INNER JOIN `orders` o ON c.order_id = o.order_id
ORDER BY c.id DESC
LIMIT 15;

效能提示

  • 確保 orders.order_id、case.order_id 均有索引。
  • 若 case 表大,考慮只查近期分區或加 WHERE c.create_time > ...。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved