【问题标题】:Mysql compare two columns in two tablesMysql比较两个表中的两列
【发布时间】: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 中具有相同 productnamequantity 的值相加。

到目前为止,我之前还没有遇到过这种情况,但如果我得到了这种情况,我可能很容易编写这个代码。我现在想的是使用distinct,但我知道这不是正确的做法。你能建议我实现这一目标的最佳和正确方法吗?除了我真的一无所知,我不能用谷歌搜索它。希望你能帮助我。

【问题讨论】:

  • 这称为“UPSERT”。如果您在产品表上有一个主键,这是一个类似的问题,它有一个很好的答案:stackoverflow.com/questions/1218905/…
  • upsert 也适用于两个表?

标签: mysql database xampp relational-database


【解决方案1】:

好吧,我会按照以下方式做
改变场景,

products: id, productname.  
purchase: id, productname, quantity, prd_id.

购买的物品;检查产品中是否存在名称
如果不存在
- 分配新的产品 ID
- 插入到 productspurchase 表中。
否则,如果现有商品已购买(检查产品 ID)
- 产品表中没有任何内容
- 更新 quantity+currentQtypurchase where prd_id = products.id

【讨论】:

    猜你喜欢
    • 2012-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2011-06-19
    • 1970-01-01
    相关资源
    最近更新 更多