首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 多表聯查返回指定表所有欄位:別名加星號語法

     編輯:MySQL 綜合教學

問題現象

多表聯查時,欲返回某表所有欄位,直接寫別名報錯:

SELECT sapcle 
FROM SellEnterpriseBaseInfor sebie,
     SellEnterpriseBaseInforVer sebive,
     SellApplyPermitChangeList sapcle
WHERE 1=1 
  AND sebie.iVerID = sebive.id 
  AND sapcle.iEnterpriseBaseInforID = sebive.id 
  AND sapcle.iState = 1 
  AND sapcle.iEnterpriseID = 11027516 
  AND sapcle.id = 84;

錯誤:Unknown column 'sapcle' in 'field list'

解決方案

別名後加 .* 表示該表所有欄位:

SELECT sapcle.* 
FROM SellEnterpriseBaseInfor sebie,
     SellEnterpriseBaseInforVer sebive,
     SellApplyPermitChangeList sapcle
WHERE 1=1 
  AND sebie.iVerID = sebive.id 
  AND sapcle.iEnterpriseBaseInforID = sebive.id 
  AND sapcle.iState = 1 
  AND sapcle.iEnterpriseID = 11027516 
  AND sapcle.id = 84;

說明

  • Java/Hibernate 中可直接用別名,但 MySQL 客戶端/編輯器需明確 別名.*
  • 同理,sebie.*、sebive.* 可返回對應表所有欄位
  • 建議明確列出所需欄位,避免 SELECT * 效能問題
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved