【问题标题】:I want sql query to change membership status我想要 sql 查询来更改会员状态
【发布时间】:2021-10-05 07:58:46
【问题描述】:

我的站点的用户具有 user_id 和 Customer_id。默认会员状态为待定。 我想要一个查询通过检查其他 2 个表中的详细信息来将成员资格状态更改为活动状态。如果用户购买了会员计划,请将其状态更改为活动。

第 1 步 - 我想从“会员”表中选择所有处于待定状态的用户。

table name: membership

+---------+---------+
| user_id | status  |
+---------+---------+
|  1      | pending |
|  2      | active  |
|  3      | pending |
|  4      | pending |
|  5      | active  |
+---------+--------+

第 2 步 - 从第 1 步中选择用户的 customer_id。

table name: Customers
+---------+--------------+
| user_id | Customer_id  |
+---------+--------------+
|  1      | 17           |
|  2      | 18           |
|  3      | 21           |
|  4      | 25           |
|  5      | 29           |
+---------+--------------+

第 3 步 - 检查第 2 步中选定的客户是否订购了 product_id 92。 如果是,则将“会员”表中的状态从待定更改为活动。

table name: orders

+-------------+------------+
| Customer_id | Product_id |
+-------------+------------+
|  21         | 85         |
|  25         | 92         |
|  29         | 99         |
+-------------+------------+

最终结果必须看起来像

    table name: membership

+---------+---------+
| user_id | status  |
+---------+---------+
|  1      | pending |
|  2      | active  |
|  3      | pending |
|  4      | active  |
|  5      | active  |
+---------+--------+

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    您可以使用带有连接语法的更新:

    update membership m
    join Customers c on m.user_id = c.user_id
    join orders o on c.Customer_id = o.Customer_id and o.Product_id = 92
    set m.status = 'active'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-24
      • 1970-01-01
      • 2021-03-14
      • 2019-08-15
      • 1970-01-01
      相关资源
      最近更新 更多