表用户包含字段ID,名称,水果,蔬菜,肉类 Table FruitType包含字段id,type,healthy,user 让我们假设用户看起来像这样:
1,马文,苹果,胡萝卜,猪肉..而FruitType表看起来像这样:
1,水果,是的,1 2,蔬菜,是的,2,我想要的是能够加入它们,并在特定字段中搜索用户中的值,具体取决于FruitType中“type”字段的VALUE。例如,我希望能够做到这一点:
SELECT User.'type' FROM User
LEFT JOIN FruitType ft ON (ft.user = User.id) etc.. conditions and so on...
基本上,我希望'type'部分取得FruitType表中'type'字段的值。实质上就像一个字段变量。
我希望我足够清楚。这是我现在正在研究的一个真实的例子,如果这看起来太混乱了,虽然真实的可能会造成更大的伤害:
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是变量。如果它不为null,只需使用其值作为字段标识符。
编辑:
为清楚起见:User中没有“type”列。示例查询中的“type”应替换为FruitType表中type的实际值。因此,如果条件产生了结果FruitType.type = fruit,我希望查询SELECT User.fruit。如果条件给了FruitType.type = veggies,我想查询SELECT User.veggies。我希望现在更清楚了。我基本上希望我选择的字段取决于FruitType中的类型。
答案 0 :(得分:0)
您的描述非常令人困惑。在您发布的代码段中,您在说明中写了“... User.'type'From User”,您说User表中没有类型字段。不过,我的猜测是你试图从FruitType表中获取'type'字段。
这可能就是你要找的东西了 SELECT FruitType.type From FruitType ft JOIN User ON(ft.type = User.id)
答案 1 :(得分:0)
解决方案是使用几个高级子查询重写查询。