我有两个表,一个用于产品,一个用于折扣。 折扣表如下所示:
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
如果"产品名称"包含"折扣"。"产品名称搜索参数"值,则"产品"将获取"折扣百分比"。我从折扣中获得产品
SELECT * FROM Products WHERE name LIKE '%a%'
但是我不知道如何获得一个产品折扣。
我想获得ID
2
您可以使用like
条件进行连接:
select p.*, d.*
from product p
inner join discounts d
on p.name like concat('%', d.product_name_seach_param, '%')
注意:就问题而言,您的设计看起来并不好。最好有一个产品参考表和一个折扣参考表,以及一个将产品与折扣相关联的联结表。
一个简单的内部连接应该这样做:
SELECT *
FROM Products
JOIN Discounts ON Products.name LIKE CONCAT('%', product_name_search_param`, '%')