【发布时间】:2020-07-14 16:30:34
【问题描述】:
我有一个联合查询,它是对涵盖不同类型项目的一组表的动态引用。我想创建一个链接表(通过查询),该表将具有手动输入,将使用联合查询作为贡献参考列表。现在当然没有主键,记录集将无法更新。我希望联合查询保持项目的动态列表,但没有主键来链接辅助表,就没有机会更新,即允许在第二个表上输入数据。
它适用于静态创建的表,即由联合生成的表,但它会很好而且干净,我的强迫症会通过简单地保持它来缓解,我认为参数化管理总是更好。
联合查询当然很简单...cut 这里可以分配主键吗? ProdID 在所有表中都是唯一的。目前 Cat_Code 和 Item_Code 是支持表中的复合主键
SELECT DataSheet_Products_NBC.Cat_Family, DataSheet_Products_NBC.Cat_Code, DataSheet_Products_NBC.Cat_Name, DataSheet_Products_NBC.ProdID, DataSheet_Products_NBC.Item_Code, DataSheet_Products_NBC.Item_Desc, DataSheet_Products_NBC.Unit
FROM DataSheet_Products_NBC
UNION
SELECT DataSheet_Estimating_Statistics.Cat_Family, DataSheet_Estimating_Statistics.Cat_Code, DataSheet_Estimating_Statistics.Cat_Name, DataSheet_Estimating_Statistics.ProdID, DataSheet_Estimating_Statistics.Item_Code, DataSheet_Estimating_Statistics.Item_Desc, DataSheet_Estimating_Statistics.Unit
FROM DataSheet_Estimating_Statistics
UNION SELECT DataSheet_Products_Other.Cat_Family, DataSheet_Products_Other.Cat_Code, DataSheet_Products_Other.Cat_Name, DataSheet_Products_Other.ProdID, DataSheet_Products_Other.Item_Code, DataSheet_Products_Other.Item_Desc, DataSheet_Products_Other.Unit
FROM DataSheet_Products_Other;
我最终需要一个查询,包含联合查询,主键和一个可以接受数据的数据表,即可更新。
【问题讨论】:
-
在查询中包含 UNION 查询会导致数据集不可更新。期间。
-
嗯。好的。我仍然想知道如何动态地将键分配给联合查询。可以在创建联合查询时更改表或某些命令创建键吗?由于它是一个虚拟对象,我可以想到它还有什么可能
-
无法在 UNION 查询中分配 PK。我不明白你为什么要这样做。仍然可以在另一个查询中使用 UNION 并加入常见的 ProdID 字段。 ProdID 是 UNION 中的 FK,它将加入其他表中的 PK。可以使用 UNION 作为 INSERT 到另一个表或 MAKE TABLE 的源。
-
酷,感谢您提供的信息...这就是我使用联合的方式,但是当我深入研究(访问)时,它对没有更新的主要抱怨是链接表无法在没有 PK 的情况下更新加入。我最终只运行 INSERT 并添加列来重置表,工作正常,但现在它是静态的,即在我对工会成员进行更新时没有动态链接等。干杯