让我们进行这个简单的查询(下面的代码可能不准确)
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/