3 回答
TA贡献1847条经验 获得超7个赞
您可以将LEFT JOIN两个表相互关联product_id,然后在两个name字段中搜索以找到匹配项,如果匹配则返回产品名称。我们使用 aLEFT JOIN以便仍然可以搜索没有项目的产品。例如(搜索产品名称):
SELECT p.id, p.name
FROM products p
LEFT JOIN items i ON i.product_id = p.id
WHERE p.name LIKE '%Product 1%'
OR i.name LIKE '%Product 1%'
输出:
id name
1 Product 1
或搜索项目名称:
SELECT p.id, p.name
FROM products p
LEFT JOIN items i ON i.product_id = p.id
WHERE p.name LIKE '%Item 1%'
OR i.name LIKE '%Item 1%'
输出:
id name
1 Product 1
TA贡献1797条经验 获得超6个赞
您需要使用 JOIN 来联合。
SELECT *
FROM products
WHERE name LIKE '%search term%'
UNION
SELECT p.*
FROM products AS p
JOIN items AS i ON p.id = i.product_id
WHERE i.name LIKE '%search term%'
TA贡献1848条经验 获得超10个赞
我会用:
select p.*
from products p
where p.name LIKE '%search term%' or
exists (select 1
from items i
where i.product_id = p.id and
i.name LIKE '%search term%'
);
使用此公式,如果多个项目与产品匹配,您不必担心重复。
- 3 回答
- 0 关注
- 132 浏览
添加回答
举报