当我使用这个:
SELECT DISTINCT id FROM table
Run Code Online (Sandbox Code Playgroud)
这可行!但是...当我只想过滤一列时,我尝试这样做:
SELECT DISTINCT prod_id, id, prod_picture FROM products
Run Code Online (Sandbox Code Playgroud)
这给了我所有表格...每个产品只需要一张图片,例如:
1 | 1 | asd.jpg
2 | 3 | q
不
1 | 1 | asd.jpg
1 | 2 | qwe.jpg
2 | 3 | weq.jpg
实际上我尝试使用此:
SELECT DISTINCT
prod_list.id,
prod_list.prodname,
prod_pict.pict_file
FROM
prod_list
INNER JOIN urun_pict ON (prod_list.id = prod_pict_prod_id)
Run Code Online (Sandbox Code Playgroud)
我只过滤“ prod_list.id” ...
您应该GROUP BY使用产品ID将每个ID的所有行折叠为一个。所有不属于GROUP BY子句的列均应为聚合列。您需要告诉MySQL 您想要其他列的可能多个值中的哪个。如果您不在乎,请使用MIN或MAX?
SELECT
prod_list.id,
prod_list.prodname,
MAX(prod_pict.pict_file) AS `pict_file`,
FROM
prod_list
INNER JOIN
prod_pict
ON
prod_list.id = prod_pict.prod_id
GROUP BY
prod_list.id,
prod_list.prodname
Run Code Online (Sandbox Code Playgroud)