【发布时间】:2021-07-21 04:17:32
【问题描述】:
我有一个包含客户 ID 和优惠券的两列表。我想通过将来自外部数据列表的凭证分配给每个客户的 ID 来填写“优惠券”列。而且,代码一旦分配,就不能再分配给其他客户。
你能帮我写一个 SQL 查询吗?
Table:
| Customer ID | Coupon |
| -------- | -------------- |
| 100 | |
| 200 | |
| 300 | |
Data list:
| Voucher ID | Voucher |
| -------- | -------------- |
| 1 | j2h3h2 |
| 2 | hfd7s8 |
| 3 | fsdfs72 |
Final result
| Customer ID | Coupon |
| -------- | -------------- |
| 100 | j2h3h2 |
| 200 | hfd7s8 |
| 300 | fsdfs72 |
【问题讨论】:
-
我们应该如何确定哪个优惠券分配给哪个客户?分配是否必须是确定性的(每次执行时都相同)?是否总是有足够的优惠券可供每位客户使用一张优惠券?优惠券会比顾客多吗?为什么最终结果包含的是优惠券的字符串,而不是它的id?
-
哪个优惠券分配给哪个客户都没有关系。优惠券对每位客户均有效,但单个客户应收到单独的优惠券。仅应为尚未分配代码的客户进行分配,因此其 ID 的“优惠券”值为空。假设有足够的优惠券。现在没关系,我只是想测试一下机制。是的,优惠券总是比顾客多。包含客户的表格每天都会更新,因此之前未分配的优惠券应分配给新客户。
-
我们想将优惠券的字符串发送给客户,这就是我们使用它而不是 ID 的原因。
-
哪个数据库管理系统?语法在它们之间有所不同。 (将光标悬停在
SQL标签上以获取更多信息。) -
你的意思是 - MySQL?