将多个字段连接到表

时间:2016-08-24 16:12:30

标签: mysql

我创建了一个名为products的表,看起来像这样:

+----+-----------------+------------------------------+
| id | name            | another information          |
+----+-----------------+------------------------------+
|  1 | product1        |                            a |
|  2 | product2        |                            b |
|  3 | product3        |                            c |
|  4 | product4        |                            d |
|  5 | product5        |                            e |
+----+-----------------+------------------------------+

另一个名为product_list的人看起来像这样:

+----+-----------------+-----------------+-----------------+
| id | product_1       | product_2       | product_3       |
+----+-----------------+-----------------+-----------------+
|  1 |               1 |               2 |            NULL |
|  2 |            NULL |               2 |            NULL |
|  3 |               3 |               4 |               1 |
|  4 |            NULL |            NULL |            NULL |
|  5 |               1 |               4 |               3 |
+----+-----------------+-----------------+-----------------+

现在我希望JOIN product_list productsproduct_products,ID为+----+-----------------------------+ | id | product_list | +----+-----------------------------+ | 1 | product1,product2 | | 2 | product2 | | 3 | product3,product4,product1 | | 4 | NULL | | 5 | product1,product4,product3 | +----+-----------------------------+ ,就会出现这样的情况:

SELECT 
pl.id,
GROUP_CONCAT(p.name)
FROM products AS p
JOIN product_list AS pl
ON(
   (pl.product_1 = p.id OR pl.product_1 IS NULL)
   AND (pl.product_2 = p.id OR pl.product_2 IS NULL)
   AND (pl.product_3 = p.id OR pl.product_3 IS NULL)
)
GROUP BY pl.id

我做了很多测试,但没有人工作。我认为这段代码与我的需求最相似:

srcElement

0 个答案:

没有答案