我在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个副本,我不知道为什么。
答案 0 :(得分:0)
如果要从查询中获取数据,可以使用“create table as select”语句创建新表,并使用旧表中的数据。
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
[(create_definition,...)]
[table_options]
[partition_options]
select_statement
点击此处了解详情:http://dev.mysql.com/doc/refman/5.1/en/create-table.html