sql 多表關聯

項目中遇到多表關聯查詢,device_info與device_oper是一對多關係,project_info,branch_info與device_info是一對多關係。多表的查詢

SELECT 
  o.*,
  d.deviceName,
  p.projectName,
  b.`branchName`,
  r.`releaseId` 
FROM
  device_oper o
  LEFT JOIN device_info d 
    ON o.deviceId = d.id 
  INNER JOIN project_info p 
    ON d.projectId = p.`id` 
  INNER JOIN branch_info b 
    ON d.`branchId` = b.`id` 
  INNER JOIN release_info r 
    ON d.`releaseId` = r.releaseId
多表關聯查詢通常會將關聯查詢結果作爲一個表再進行連接查詢

SELECT 
  c.deviceName,
  c.deviceType,
  c.projectName,
  c.branchName 
FROM
  device_oper AS a 
  LEFT JOIN 
    (SELECT 
      a.id AS deviceId,
      a.deviceName AS deviceName,
      a.deviceType AS deviceType,
      b.projectName AS projectName,
      c.branchName AS branchName 
    FROM
      device_info AS a 
      LEFT JOIN project_info AS b 
        ON a.projectId = b.id 
      LEFT JOIN branch_info AS c 
        ON a.branchId = c.id) AS c 
    ON a.deviceId = c.deviceId
發佈了91 篇原創文章 · 獲贊 3 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章