Php 如何使我的三表sql联接工作?

Php 如何使我的三表sql联接工作?,php,mysql,sql-server,Php,Mysql,Sql Server,我正在做一个项目。我正试图通过内部联接查询三个表,但我不工作,所以我想向你们公开这个问题,以便有人能帮上忙,下面是我设计数据库的方法 项目表 分组表 颜色表 项目组 物品颜色 因此,我想实现的是查询表,以整理出关于该项的以下信息: 项目名称、项目价格和项目颜色。因此,我运行下面的sql查询 $sql ="SELECT items.id_item,item_name FROM items INNER JOIN item_color ON item_color.itemId=items.id_ite

我正在做一个项目。我正试图通过内部联接查询三个表,但我不工作,所以我想向你们公开这个问题,以便有人能帮上忙,下面是我设计数据库的方法

项目表

分组表

颜色表

项目组

物品颜色

因此,我想实现的是查询表,以整理出关于该项的以下信息: 项目名称、项目价格和项目颜色。因此,我运行下面的sql查询

$sql ="SELECT items.id_item,item_name FROM items INNER JOIN item_color ON item_color.itemId=items.id_item INNER JOIN color ON color.id_color = item_color.colorId INNER JOIN
    item_groupe ON item_groupe.it_ID = id_item INNER JOIN groupe ON item_groupe.groupeid = groupe.id_groupe WHERE id_groupe =1";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();

有人能帮忙吗

深入到这个片段:

SELECT i.item_name AS name, i.item_price AS price, c.name_color AS color
FROM items i
  JOIN item_color ic ON i.id_item = ic.itemId
  JOIN color c ON ic.colorid = c.id_color
  /*next two joins are necessary to filter item by group*/
  JOIN item_groupe ig ON i.id_item = ig.it_ID
  JOIN groupe g ON ig.groupeid = g.id_groupe
/*example of filtering product by name*/
WHERE g.id_groupe = 1


另外,您的命名约定太混乱了:

请仔细阅读以下片段:

SELECT i.item_name AS name, i.item_price AS price, c.name_color AS color
FROM items i
  JOIN item_color ic ON i.id_item = ic.itemId
  JOIN color c ON ic.colorid = c.id_color
  /*next two joins are necessary to filter item by group*/
  JOIN item_groupe ig ON i.id_item = ig.it_ID
  JOIN groupe g ON ig.groupeid = g.id_groupe
/*example of filtering product by name*/
WHERE g.id_groupe = 1


另外,你的命名规则太混乱了:

Char 100?当然是瓦查尔。price可能会假设您的查询似乎可以使用数字数据类型吗我唯一可能改变的想法是命名与您的查询匹配的第一个表项,而不是问题陈述。@bd808查询结果中出现的颜色名称是白色?@KBadeveloper Ah。除了假设正确的表名是items之外,我还将name\u color添加到select语句select items的字段列表中。id\u item,item\u name,name\u color FROM…Char 100?当然是瓦查尔。price可能会假设您的查询似乎可以使用数字数据类型吗我唯一可能改变的想法是命名与您的查询匹配的第一个表项,而不是问题陈述。@bd808查询结果中出现的颜色名称是白色?@KBadeveloper Ah。除了假设正确的表名是items之外,我还将name\u color添加到select语句select items的字段列表中。id\u item,item\u name,name\u color FROM。。。
it_ID (PK)  groupeid(PK)
 1           1
itemId(PK) colorId(PK)
 1           1
$sql ="SELECT items.id_item,item_name FROM items INNER JOIN item_color ON item_color.itemId=items.id_item INNER JOIN color ON color.id_color = item_color.colorId INNER JOIN
    item_groupe ON item_groupe.it_ID = id_item INNER JOIN groupe ON item_groupe.groupeid = groupe.id_groupe WHERE id_groupe =1";
    $stmt = $pdo->prepare($sql);
    $stmt->execute();
SELECT i.item_name AS name, i.item_price AS price, c.name_color AS color
FROM items i
  JOIN item_color ic ON i.id_item = ic.itemId
  JOIN color c ON ic.colorid = c.id_color
  /*next two joins are necessary to filter item by group*/
  JOIN item_groupe ig ON i.id_item = ig.it_ID
  JOIN groupe g ON ig.groupeid = g.id_groupe
/*example of filtering product by name*/
WHERE g.id_groupe = 1