首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYySQL表关系错误吗?

MYySQL表关系错误吗?
EN

Stack Overflow用户
提问于 2015-02-14 09:50:45
回答 2查看 67关注 0票数 0

我在数据库中非常新,在MYSQL中更具体。我使用xampp + MySQL工作台。我使用MySQL工作台制作了3个表:

- tbStores with fields StoreID(PK-INT-AI), StoreName - tbProducts with fields ProductID(PK-INT-AI), ProductName - tbProductDetails with fields ProductDetailID(PK-INT-AI), Price, ProductID(FK), StoreID(FK)

*PK=Primary密钥

*INT=Numeric类型属性

*AI=Auto增量

,以防您不理解上面的关系:

  • 从tbStores(StoreID)到tbProductDetails (StoreID)
  • 从tbProducts(ProductID)到tbProductDetails (ProductID)

我向字段添加值:

- tbStores=> StoreName=> Store 1 - tbProducts=> ProductName=> Product 1, Product 2 - tbProductDetails=> Price=> 50, 30 - tbProductDetails=> ProductID=> 1, 2 - tbProductDetails=> StoreID=> 1, 1

到查询:

SELECT tbStores.StoreName, tbProductDetails.Price, tbProducts.ProductName FROM tbStores, tbProductDetails, tbProducts Where ProductName = 'Product 1';

问题:

查询将返回以下内容

商店1,50,Product 1

商店1,30,产品1

是给我两个不同价格的相同产品。我想要的是:

商店1,50,Product 1

我做错了什么?我相信这和人际关系有关,但我想不出来。

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-02-14 09:59:01

您需要在查询中将表连接在一起(指定它们之间的关系),查询应该如下所示:

代码语言:javascript
复制
SELECT tbStores.StoreName, tbProductDetails.Price, tbProducts.ProductName 
FROM tbProductDetails 
JOIN tbStores ON tbStores.StoreID = tbProductDetails.StoreID
JOIN tbProducts ON tbProducts.ProductID = tbProductDetails.ProductID
WHERE tbProducts.ProductName = 'Product 1';

如果您想要所有产品,您必须删除where子句。注意,我冒昧地使用join关键字将from子句中的隐式联接更改为显式联接。

示例SQL Fiddle

样本输出:

代码语言:javascript
复制
| STORENAME | PRICE | PRODUCTNAME |
|-----------|-------|-------------|
|    Store1 |    50 |    Product1 |
票数 0
EN

Stack Overflow用户

发布于 2015-02-14 10:00:24

您想要的是将JOINON结合使用。

代码语言:javascript
复制
SELECT StoreName, Price, Product Name 
FROM tblStores
JOIN tblProduct ON tblStores.StoreID = tblProducts.StoreID
JOIN tblProductDetails ON tblProduct.ProductID = tblProductDetails.ProductID
WHERE ProductName = 'Product 1'

您可以考虑使用GROUP BY来标识特定的商店。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28514363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档