【问题标题】:Help in formulating sql query帮助制定sql查询
【发布时间】:2010-05-17 02:01:33
【问题描述】:

这是我的场景

表 1:GID ||信息1

表 2:GID || Tb1GID(指 到表 1 的 GID) ||信息2

表 3:GID ||信息3

表 4:GID || Tb2GID(指 表 2 的 GID || Tb3GID(指 表 3 GID ||价值

现在我必须构建一个 sql 查询来获取值,给定一个特定的 Info1、Info2、Info3。 本质上,我必须使用 info1 获取表 1 的 GID,通过将表 1 的 info2 和 GID 映射到表的 GID。然后使用 info 3 获取表 3 的 GID。并将这些与 GID 组合以获得值在表 4 中。

为此构造一个 sql 查询的最佳方式是什么?

【问题讨论】:

  • 到目前为止,您得到了哪些查询?

标签: sql


【解决方案1】:

只需加入 id:s 上的表并匹配条件中的信息值:

select
  t4.Value
from
  [Table 1] as t1
  inner join [Table 2] as t2 on t2.Tb1GID = t1.GID
  inner join [Table 4] as t4 on t4.Tb2GID = t2.GID
  inner join [Table 3] as t3 on t3.GID = t4.Tb3GID
where
  t1.Info1 = @Info1 and
  t2.Info2 = @Info2 and
  t3.Info3 = @Info3

这最清楚地传达了关系的工作方式,为查询计划者提供了最佳信息。

【讨论】:

  • 您还可以将t2t3 的WHERE 子句移动到它们各自的JOIN 中。
猜你喜欢
  • 2010-10-20
  • 1970-01-01
  • 2016-08-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多