【问题标题】:MySQL - How to join two or more tables with more than one ID? [closed]MySQL - 如何连接具有多个 ID 的两个或多个表? [关闭]
【发布时间】:2017-03-23 03:59:05
【问题描述】:

我对 MySQL 和 PHP 并不陌生。我打算为一家销售不同尺寸化妆品的公司开发一个数据库。我的数据库有两 (2) 个表。一个是Products,另一个是Sizes。我正在使用 PHP PDO。我想要的只是加入这两个表,正如我在图片中提到的那样。我的问题很简单,

如何插入和选择具有两个或多个尺寸的产品?

(如果我的这种方法是错误的,请给我推荐一个可以用于其他类似情况的正确方法。)

提前感谢您的帮助。

My Table Map

【问题讨论】:

  • 这两张表是什么关系?
  • @knowledge....是的..!这就是我需要知道的一切..!如何在这两个表之间建立关系。?
  • 尺寸是标准的,也就是说很多产品的尺寸都一样吗?如果是这样,这将是一个 m:m(多对多)关系。也就是说,一种产品可以有多种尺寸,并且可以有许多相同尺寸的产品。如果是 m:m,您将需要 3 张桌子。说:产品、尺寸、库存。产品表保留有关产品的一般信息。尺寸保存有关不同尺寸及其相关测量值的信息,最后库存表结合了其他 2 个。库存表告诉您有多少尺寸(例如:M)的产品(例如:A)有库存。
  • @blokeish 非常感谢亲爱的..!其实我什至不知道我的要求是什么。现在我知道我必须在谷歌上搜索多对多关系。再次感谢...!!!

标签: php mysql database database-design pdo


【解决方案1】:

您需要使用 product_size 创建另一个表名

带有 id、product_id、size_id

你需要插入数据来与之相关

id prodict_id size_id
1      1          1
2      1          2
3      2          1
4      3          4
5      3          5
6      4          5

等等 我已经把这张桌子放在你的愿望锅上

那么你需要一个查询来得到你想要的输出

select P.producr_id,P.name,group_concat(PS.size_id) from Product as P 
join product_size PS   on PS.product_id=P.id  group by PS.product_id

【讨论】:

  • 哇..!!这是我想要的..!就是这个...!!你拯救了我的未来……!!!理解并像魅力一样工作..!!非常感谢你亲爱的..!
  • 欢迎。这是我的荣幸
【解决方案2】:

我认为您需要为产品和尺寸之间的关系添加一个额外的表格

CREATE TABLE `relations` (
  `id_relation` int(11) NOT NULL AUTO_INCREMENT,
  `n_product_id` int(11) NOT NULL,
  `n_size_id` int(11) NOT NULL,
  PRIMARY KEY (`id_relation`)
)

【讨论】:

  • 谢谢亲爱的..!!简单而甜蜜的答案..!真的很好理解..!再次感谢你..!!
猜你喜欢
  • 2014-03-21
  • 1970-01-01
  • 2016-11-10
  • 2016-10-02
  • 2014-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多