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
所以,我想要实现的是查询表以整理关于该项的以下信息:
the item name, item price and item color
。所以我运行了以下的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();
有人可以帮忙!
答案 0 :(得分:0)
深入了解这个片段:
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
P.S。你的命名约定非常混乱:)