我有一个 mySQL 表,其中包含一组参考数据。我有另一个表,其中包含描述此参考数据的更新或附加条目的数据。由于各种原因,我不会深入讨论,重要的是参考数据在特定用户出现并创建记录时保持不变(因此是第二个表)。除了具有 2 键复合主键的“自定义”表之外,这些表之间的架构是相同的。其中一列在“自定义”表和参考表之间共享。
我想在这些表的单个 SQL 语句中执行的业务逻辑如下:
如果“自定义”表中存在与引用表中的键值相同的记录,则采用“自定义”。否则,取参考值。
我想也许我可以使用 RIGHT JOIN,或者甚至对 UNION 运算符进行一些扭曲来控制返回的内容。不过,我一直在搞乱 SQL 的逻辑。JOIN 将从一个表中获取信息以与另一个表连接,我真的不是在寻找。UNION 将简单地删除表之间的重复项......这很接近。
就像是:
SELECT * FROM 自定义 UNION SELECT * FROM 参考
除非所有列都相同,否则只会删除重复项。如果有任何不同(因为这就是自定义条目存在的原因),那么 UNION 只会将两个表的内容混合在一起。
我对这一切都错了吗?
感谢您提供的任何见解。