MySQL将3个表合并为1个

时间:2012-12-17 09:16:51

标签: php mysql search join

我在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个副本,我不知道为什么。

1 个答案:

答案 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