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 關注
- 172 瀏覽
添加回答
舉報