我有两张桌子,一张是商品的,一张是折扣的。折扣表如下:
ID | Name | Percentage | Product Name Search Param
-----------------------------------------------------------
1 | Black Friday | 50 | a
2 | White Friday | 75 | b产品表如下所示:
ID | Name | Price
--------------------------
1 | Shoes | 2500
2 | Hat | 1500
3 | Baseball cap | 500如果产品名称包含Discount.Product名称搜索参数值,则Product将获得折扣百分比。我从折扣中得到这些产品。
SELECT * FROM Products WHERE name LIKE '%a%'但是我不知道如何获得一种产品折扣。
我想买有折扣的ID 2的产品。
发布于 2019-12-09 09:28:32
您可以使用like条件加入:
select p.*, d.*
from product p
inner join discounts d
on p.name like concat('%', d.product_name_seach_param, '%')注意:就关注点而言,你的设计看起来不太好。最好有一个产品参考表和一个折扣参考表,以及一个将产品与折扣联系在一起的表格。
发布于 2019-12-09 09:28:40
一个简单的内部连接应该做到这一点:
SELECT *
FROM Products
JOIN Discounts ON Products.name LIKE CONCAT('%', product_name_search_param`, '%')https://stackoverflow.com/questions/59245847
复制相似问题