php - 如何使我的三表 sql 连接工作?

标签 php mysql sql-server

我正在做一个项目。我正在尝试通过 INNER JOIN 查询三个表..但是我不工作..所以我想把这个问题告诉你..所以有人可以帮助..这是我设计我的方式分贝

项目表

id_item(PK, autoincrement) item_name (char, 100) item_price(char,10)
  1                         nike                  12000

组表

id_groupe (PK, autoincrement) groupe_name (char, 100)
  1                             homme

色表

id_color (PK, autoincrement) name_color(char, 30)
  1                           white

item_groupe

it_ID (PK)  groupeid(PK)
 1           1

item_color

itemId(PK) colorId(PK)
 1           1

所以,我要实现的是查询表,整理出关于item的如下信息: 商品名称、商品价格和商品颜色。所以我运行以下 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

Full example .

附言你的命名约定太乱了:)

关于php - 如何使我的三表 sql 连接工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33850074/

相关文章:

php - 添加 'rd or ' th 或 'st 取决于数字

php - cakephp - 检查 session 是否设置

PHP:加载 gzip 压缩的 javascript 文件

asp.net - 如何在 Entity Framework 中禁用每个查询的查询执行计划缓存?

sql-server - 使用回车换行符将多行合并为一列

php - 如何让 PHP 在错误时产生回溯?

php - Mysql只显示日期之间的消息

php - 如何使用 php 将 session 增量值插入数据库表?

php - 将自定义 Docker 容器链接到 MySQL

c# - 创建一个查询并将结果放入数据网格