Mysql比较两个表中的两列
Posted
技术标签:
【中文标题】Mysql比较两个表中的两列【英文标题】:Mysql compare two columns in two tables 【发布时间】:2013-03-03 03:03:47 【问题描述】:我有 2 个表,即 Products & Purchase:
products: id, productname, quantityleft.
purchase:id, productname, quantity.
产品表- 将购买所有新产品。这意味着表产品中不会存在相同的产品名称。所有独特产品的列表
PURCHASE TABLE - 具有唯一 Purchase_ID 的所有购买产品的列表。
这是我的场景/问题:
如果我想在 PURCHASE 中添加或插入值,PRODUCTS 表将获得 purchase 的所有值,但是仅当 purchase 中的 productname 不存在于 PRODUCTS 的 'productname' 中。
如果 productname purchase 已存在于 productname products 中,则 quantity products 中的 将由 purchase 中具有相同 productname 的 quantity 的值相加。
到目前为止,我之前还没有遇到过这种情况,但如果我得到了这种情况,我可能很容易编写这个代码。我现在想的是使用distinct
,但我知道这不是正确的做法。你能建议我实现这一目标的最佳和正确方法吗?除了我真的一无所知,我不能用谷歌搜索它。希望你能帮助我。
【问题讨论】:
这称为“UPSERT”。如果您在产品表上有一个主键,这是一个类似的问题,它有一个很好的答案:***.com/questions/1218905/… upsert 也适用于两个表? 【参考方案1】:好吧,我会按照以下方式做 改变场景,
products: id, productname.
purchase: id, productname, quantity, prd_id.
购买的物品;检查产品中是否存在名称
如果不存在
- 分配新的产品 ID
- 插入到 products 和 purchase 表中。
否则,如果现有商品已购买(检查产品 ID)
- 产品表中没有任何内容
- 更新 quantity+currentQty 在 purchase where prd_id =
products.id
【讨论】:
以上是关于Mysql比较两个表中的两列的主要内容,如果未能解决你的问题,请参考以下文章