admin

在查询中使用人类可读的常量

sql

这是一个示例查询:

SELECT thing_id
FROM thing
WHERE thing_type IN (3, 7)

我想将3和7变成易于理解的名称,以帮助了解查询的实际作用。像下面这样的东西会很棒:

SELECT thing_id
FROM thing
WHERE thing_type_id IN (OPENED, ONHOLD)

知道OPENED和ONHOLD会使它们的实际值在其他地方声明。

我在想,也许还有一种方法可以通过对THOM_TYPE表进行JOIN来实现。

请注意,我被困在直接编码查询而不是使用抽象框架的环境中。


阅读 130

收藏
2021-07-01

共1个答案

admin

假设您有一个名为ThingNames的链接表,其中有两列,即id和ThingName,则可以执行此操作

SELECT thing_id

FROM thing

LEFT JOIN ThingNames on thing.thing_type_id = ThingName.id

WHERE ThingNames.ThingName IN ('OPENED', 'ONHOLD')

(不要忘记括号内ThingNames周围的引号。

2021-07-01