我有两个 MySQL 表。这是第一个 [产品] (PRIMARY = id):
[id] | title | description
这是第二个 [sizes] (PRIMARY = id & size):
[id] | [size]
size
只能具有来自 的值[1,2,3,4,5,6]
。
我有一个具有大小值的 PHP 数组。我将它重塑为一个逗号分隔的值字符串,如下所示:
$size_list = implode(",", $sizes);
对于不熟悉PHP的朋友,上面的代码会生成这样的字符串:“1,4,5”,然后查询数据库是这样的:
$query = "SELECT t1.id,t1.title,t1.description,t2.size FROM products t1 INNER JOIN sizes t2 ON t1.id=t2.id WHERE size IN(".$size_list .")";
但是这个查询复制了尺寸表中每种尺寸的产品。我想要:
从 products 表中返回在 sizes 表中至少有一个可用尺寸的记录,不重复
而且当然
希望变量中的这些尺寸显示给客户
例如:
产品:
1 | product1 | description1
2 | product2 | description2
3 | product3 | description3
4 | product4 | description4
尺寸:
1 | 1
1 | 2
1 | 4
1 | 5
2 | 1
2 | 5
给定$sizes_list="1,2"
,我想要的输出是:
1 | product1 | description1 | 1,2,4,5
2 | product2 | description2 | 1,5