MySQL-使用一个字段的值按名称指向另一个字段

MySQL-使用一个字段的值按名称指向另一个字段,mysql,variables,if-statement,Mysql,Variables,If Statement,表用户包含字段id、名称、水果、蔬菜、肉类。 表类型包含字段id、类型、健康、用户。 假设表用户如下所示: 1、马文、苹果、胡萝卜、猪肉 Zorlax,蓝莓,生菜,羊肉 。。而水果类型表如下所示: 1,水果,是的,1 2,蔬菜,是的,2 我想要的是能够加入他们,并在用户中搜索一个值,在一个特定的字段中,这取决于Fruchtype中“type”字段的值。例如,我希望能够做到这一点: SELECT User.'type' FROM User LEFT JOIN FruitType ft ON (

表用户包含字段id、名称、水果、蔬菜、肉类。
表类型包含字段id、类型、健康、用户。
假设表用户如下所示:

1、马文、苹果、胡萝卜、猪肉
Zorlax,蓝莓,生菜,羊肉

。。而水果类型表如下所示:

1,水果,是的,1
2,蔬菜,是的,2

我想要的是能够加入他们,并在用户中搜索一个值,在一个特定的字段中,这取决于Fruchtype中“type”字段的值。例如,我希望能够做到这一点:

SELECT User.'type' FROM User 

LEFT JOIN FruitType ft ON (ft.user = User.id) etc.. conditions and so on...
基本上,我想让'type'部分获取水果类型表中'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,只需将其值用作字段标识符

编辑:


为了清楚起见:用户列表中没有“类型”列。示例查询中的“type”应替换为水果类型表中type的实际值。因此,如果一个条件产生了结果FruitType.type=fruit,我希望查询选择User.fruit。如果条件给出了furtype.type=veggies,我希望查询选择User.veggies。我希望现在更清楚了。我基本上希望我选择的字段取决于水果类型中的类型。

您的描述非常混乱。在您发布的代码片段中,您写了“…User.”type“From User”,而在描述中,您说User表中没有type字段。不过,我猜想您正在尝试从水果类型表中获取“type”字段

可能这就是您要找的

从(ft.type=User.id)上的FROUTPYPE ft JOIN User中选择FROUTPYPE.type。

解决方案正在用几个高级子查询重写查询。

我知道会的,对此表示抱歉。让我再试一次,将修改原来的后极性通过缩短您的帖子:)最终重组了他们的整个数据库,使这个问题消失。最后,它变得简单多了,速度快了约4000%。谢谢你的努力。如果将来有读者找到解决方案,请直接与我联系。