【发布时间】:2016-09-01 16:12:28
【问题描述】:
如果我有一张表引用赞助商的名称和他们推荐的产品的产品 ID,如下所示:
--------------------------------
|Name |Product ID 1|Product ID 2|
--------------------------------
|Jon | 1 | 3 |
|Sally| 1 | 2 |
--------------------------------
还有一张列出产品的表格:
----------------------------------------
|Product ID |Product Name|Product Price|
----------------------------------------
| 1 | Prod 1 | 25 |
| 2 | Prod 2 | 35 |
| 3 | Prod 3 | 45 |
----------------------------------------
如何将这些组合在一起,以便获得赞助商的名称以及他们推荐的每个产品名称和产品价格? INNER JOIN 和 LEFT JOIN 似乎只通过了其中一种产品,但不是全部。
【问题讨论】:
-
@TowfikAlrazihi 他只加入了 2 个表,而不是 3 个表。
-
从外观上看,这些表远未标准化。您应该对实体进行分区。除非您的赞助商表中的两个产品是相关的——也就是说,每个赞助商总是有两个产品——否则您应该有一个赞助商表、一个产品表和一个推荐表。
-
sponsors table: sponsor_id, sponsor_name, email, location, etc...=>vendor table: vendor_id, vendor_name, etc...=>products table: product_id, vendor_id, product_name, price, etc...=>recommendations table: recommendation_id, sponsor_id, product_id
标签: php mysql join left-join inner-join