表用戶包含字段ID,名稱,水果,蔬菜,肉類。
Table FruitType包含字段id,類型,健康,用戶。
讓我們假設表用戶看起來是這樣的:MySQL - 按名稱使用一個字段的值來定位另一個字段
1,馬文,蘋果,胡蘿蔔,豬肉
2,Zorlax,藍莓,萵苣,羔羊
..而FruitType表看起來像這樣:
1,水果,是的,1
2,蔬菜,是的,2
我想什麼是能夠加入他們的行列,並搜索用戶價值,在一個特定領域,這取決於來自「t在FruitType中的「ype」字段。例如,我希望能夠做到這一點:
SELECT User.'type' FROM User
LEFT JOIN FruitType ft ON (ft.user = User.id) etc.. conditions and so on...
基本上,我想要的「類型」部分採取「類型」字段的值在FruitType表。實質上就像場變量。
我希望我已經夠清楚了。這是我的工作,現在一個真實的例子,如果這似乎太混亂了,雖然真正的可以做更大的危害:
IF (trigger_by_date IS NOT NULL,
date_add(books.trigger_by_date, INTERVAL trigger_by_date_add DAY),
date_add(trigger_step_created_at, INTERVAL trigger_by_step_add DAY))
as deadline
在這種情況下,trigger_by_date是變量。如果它不爲空,只需使用它的值作爲字段標識符。
編輯:
爲了清楚起見:用戶中沒有「type」列。示例查詢中的「類型」應該由FruitType表中的實際值類型替換。所以如果一個條件產生FruitType.type = fruit的結果,我想要查詢SELECT User.fruit。如果條件給出FruitType.type =蔬菜,我想查詢選擇User.veggies。我希望現在更清楚。我基本上希望我選擇的字段取決於FruitType中的類型。
結束重構他們的整個數據庫,使這個問題消失。最後,事情變得更容易,速度提高了約4000%。謝謝你嘗試。如果有未來的讀者找到解決方案,請不要猶豫,直接與我聯繫。 – Swader 2011-02-07 07:11:27