我创建了一个名为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
products
每product_
个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