2012-09-25 69 views
0

如何在稍後的同一select中使用諸如'AS uniqueName'之類的變量?MySQL - 在SELECT中使用'AS var_name'

我試圖把一些簡單的邏輯裏面的選擇,所以我不必須通過結果集只是做一些簡單的迭代:

SELECT 
CASE emp_crns.ansi_class 
    when -1 then 'N' 
    when 150 then 0 
    when 300 then 1 
    when 600 then 2 
    when 900 then 3 
    when 1500 then 4 
    when 2500 then 6 
    when 3500 then 8 
    else 'X' 
end AS crnAnsiClassCode, 
CONCAT('REV. ', crnAnsiClassCode, ' ', emp_models.name) AS modelName 
FROM 
emp_models 
JOIN 
emp_revisions ON emp_revisions.id=emp_models.revision_id 
JOIN 
emp_crns ON emp_crns.id=emp_revisions.crn_id 

回答

2

您可以使用子查詢來訪問的別名您提供了:

SELECT empcrns.crnAnsiClassCode, 
    CONCAT('REV. ', empcrns.crnAnsiClassCode, ' ', emp_models.name) AS modelName 
FROM emp_models 
JOIN emp_revisions 
    ON emp_revisions.id=emp_models.revision_id 
JOIN 
(
    SELECT id, 
     CASE ansi_class 
      when -1 then 'N' 
      when 150 then 0 
      when 300 then 1 
      when 600 then 2 
      when 900 then 3 
      when 1500 then 4 
      when 2500 then 6 
      when 3500 then 8 
      else 'X' 
     end AS crnAnsiClassCode 
    FROM emp_crns 
) empcrns 
    ON empcrns.id=emp_revisions.crn_id 
+0

在最後兩行的'on clause''中獲取未知列'emp_crns.id'? – user1627928

+0

@ user1627928請參閱我的編輯 – Taryn

+0

有沒有其他方法可以做到這一點?我在CodeIgniter中使用activerecords,並且此功能不存在。 – user1627928