【问题标题】:Can a field reference two different tables? [duplicate]一个字段可以引用两个不同的表吗? [复制]
【发布时间】:2014-06-19 17:40:43
【问题描述】:

在 MySQL 中,假设我在 table1 中有一个字段,它将采用“1”或“2”作为值。如果它是'1',我希望它指向table2,如果它是'2',我希望它指向table3。这可能吗?

【问题讨论】:

  • 是的,有可能。或者你想要蛋糕解决方案?
  • 编写两个查询,每个查询都与适当的表连接,并将它们与UNION 结合起来。或者写两个LEFT JOINs
  • @echo_Me 什么是o.o蛋糕解决方案?

标签: mysql database relational-database relationship


【解决方案1】:

是的。你需要把整个事情放在一个case语句中。

            Select case 
            when table1.value = 1 then table2.value
            when table1.value = 2 then table3.value
            end as 'value'
           FROM         table1 
INNER JOIN
tableq ON table1.id = table2.id
INNER JOIN
tableq ON table1.id = table3.id

这是基本语法。它正在做的是说,“如果价值是 THIS,我想要来自 HERE 的价值”。您可以根据需要添加任意数量的 WHEN。

编辑:在加入中添加。现在应该是正确的。

【讨论】:

  • 棘手的部分是您省略的 JOIN/ON 子句。
  • 你是对的。我现在实际上正在解决这个问题。给我一分钟。
  • 该问题已作为副本关闭,答案就在那里。
猜你喜欢
  • 2021-12-07
  • 1970-01-01
  • 2012-11-27
  • 1970-01-01
  • 2015-01-13
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 2015-09-01
相关资源
最近更新 更多