我在 PHP 中创建了一个搜索框并使用 MySQL 作为数据库,但是在搜索时有 3 个表,颜色、产品和类别,它们都有一个 ID 号并且可以链接。我曾尝试在任何地方使用 INNER JOIN、LEFT、RIGHT,但没有运气,查询有时会起作用,吐出多个项目。因此,我正在考虑创建一个通用的场景,其中所有表字段名称都将在一个表中,我可以轻松地查询该表。我已经手动创建了表,但是无论如何将 3 个表中的数据处理到那个主表中?如果它是一个只处理一个表的查询,我不介意单独执行它,但我希望不必手动输入所有数据,因为有 600 多行。
这是我目前正在尝试使用的代码:
SELECT
categories.Product_Type, items_colors.ColourImageurl,
items_list.description, items_list.Description2,
items_list.title, items_list.id, categories.title AS title2,
items_colors.itemID, Colour Name
FROM items_list
LEFT JOIN categories ON categories.Product_Type = items_list.CatID
LEFT JOIN items_colors ON items_list.id = items_colors.itemID
WHERE items_list.visible = 1 AND
Colour Name LIKE '%".$search."%'
类别定义您选择的产品类型,items_list 包含所有子类别名称的列表,item_colors 包含链接到 items_list 产品的所有颜色名称的列表。当我使用这个查询时,它会输出一个项目的 4 个副本,我不知道为什么。