MySQL表中的多个连接

时间:2016-09-01 16:12:28

标签: php mysql join left-join inner-join

如果我有一张表引用赞助商的名称和他们推荐的产品的产品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 JOINLEFT JOIN似乎只是通过其中一个产品,但不是所有产品。

1 个答案:

答案 0 :(得分:1)

加入两次。

SELECT s.name, p1.ProductName AS product_1_name, p1.ProductPrice AS product_1_price, p2.ProductName AS product_2_name, p2.ProductPrice AS product_2_price
FROM sponsers AS s
JOIN products AS p1 ON s.ProductID1 = p1.ProductID
JOIN products AS p2 ON s.ProductID2 = p2.ProductID