我有選擇的情況下的問題..MySQL查詢選擇的情況下更然後1個表
表
模板(temp_id,TEMP_TITLE,temp_applyto,temp_status,日期,結束日期)
[其中temp_applyto存儲int 1-individual,2-branch,3-dept和4-position]
individu(applyto_id,applyto_individu,applyto_temp)
分支(applyto_id,applyto_branch,applyto_temp)
部門(applyto_id,applyto_dept,applyto_temp)
職位(applyto_id,apply to_position,applyto_temp)
人員(ID,姓名,分公司,部門,職務)
說明:
我要檢查用戶是否他在表individu,分支,部門或職位。如果temp_applyto(表模板)= 1然後我想要查詢表individu如果用戶存在,如果temp_applyto = 2然後我想如果用戶存在和相同的推移檢查表分支。
查詢至今:
SELECT (CASE WHEN temp_applyto=1
THEN (SELECT applyto_temp FROM individu
WHERE applyto_individu=$user)
WHEN temp_applyto=2
THEN (SELECT a.applyto_temp FROM branch a, staff b
WHERE >a.applyto_branch=b.branch AND b.id=$user)
WHEN temp_applyto=3
THEN (SELECT a.applyto_temp FROM dept a, staff b
WHERE >a.applyto_dept=b.dept AND b.id=$user)
WHEN temp_applyto=4 THEN (SELECT a.applyto_temp FROM position a, staff b
WHERE a.applyto_position=b.position AND b.id=$user)
ELSE 0 end) as template_temp
FROM template
WHERE '2013-08-21' BETWEEN start_date AND end_date
和我得到這個錯誤:子查詢返回多個1行
謝謝invisal和Aleks G的快速回復...我已經測試你的查詢,但invisal查詢返回0行,是的,我想返回多1行。有沒有其他解決方案? – achimet
返回0查詢沒有任何錯誤?是否有可能在本網站http://sqlfiddle.com/中構建您的示例數據庫。我們測試並找到解決方案要容易得多。 – invisal
對不起invisal ..它的工作..我的壞。但我想問你的東西..那麼如果我有temp_applyto(表模板)= 0適用於所有用戶,並沒有像其他人的表。我嘗試把(選擇temp_id AS template_temp,0 AS temp_applyto從模板)..我可以這樣做嗎? – achimet