sql - 如何在编写sql查询时不重复自己?

标签 sql .net

让我们进行这个简单的查询(下面的代码可能不准确)

select a, b, c from inventory where x=:x AND y=:y limit 20

假设我使用 ORM 将行映射到库存类,我的函数是这样的

inventory[] get_inventory(int x, int y)

现在假设我需要使用相同查询的额外数据。我想加入一个表并在该查询之上获取 2 个额外字段

class inventory2 : inventory { string owner_name; long owner_id; }
...
inventory2[] get_inventory2(int x, int y) {
...
select a, b, c, o.owner_name, o.id as owner_id from inventory i join owner o on i.owner=o.id where x=:x AND y=:y limit 20
CHANGES         ^----------------------------^                  ^--------------------------^

这在各个方面都应该是相同的查询。我只想要额外的字段。除了复制/粘贴 sql 之外,我想不出其他方法来做到这一点,并希望在更改另一个时不要忘记更改一个。

如何才能不重复自己的话?

最佳答案

无法共享选择列表,因为这是两个不同的查询,并且都需要自己的字段列表来选择。

关于sql - 如何在编写sql查询时不重复自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22396471/

相关文章:

mysql - 我想计算日期之间的列行数

mysql - 使用 mysql 进行右连接的简单更新

c# - AppDomain.CurrentDomain.UnhandledException 没有被调用

c# - 匿名类型的实例是否可序列化到 session 中?

c# - 在循环中从哈希表中删除项目

sql - SQL 中的变量 "IN"表达式

mysql - 拆分巨大的mysql插入到多个文件建议

sql - 检查 Postgres 中 2 个日期范围之间的交集

.net - LINQ 表达式 TreeMap 灵完整吗?

c# - 为什么 String.Clone() 返回原始字符串而不是它的副本?