以下是我的表格的简化版本。
[stock_adjust]
id
batch_table_name
batch_id
adjustment_reason
qty
[ingredient_batch]
id
batch_name
...lots of other columns
[product_batch]
id
batch_name
...lots of other columns
[packaging_batch
id
batch_name
...lots of other columns
库存调整在“批次表名称”列中包含正确批次表的名称,该名称将是“配料批次”、“产品批次”或“ Package 批次”。我需要从正确的批处理表中获取每个条目的值。这方面的伪代码如下所示:
SELECT sa.id, sa.adjustment_reason, sa.qty, batch.batch_name
FROM stock_adjust AS sa, [sa.batch_table_name] AS batch
WHERE sa.batch_id=batch.id
我已经尽可能地简化了描述和表格,希望我没有把它简化得太多,上面的内容有意义吗?
我发现了几个与以下类似问题有关的问题,但它们要么在这种情况下不能正常工作,要么我没有正确理解这个问题。
2条答案
按热度按时间ymzxtsji1#
梅比a
dynamic query
可能是解决办法。勾选这个答案,从@variable中选择*blmhpbnm2#
虽然我建议您更新数据库模式,但以下是一种适合您的场景的方法:
sql fiddle演示