当我使用它时:
SELECT DISTINCT id FROM table
这是有效的!但是......当我只想过滤一列时,我会尝试这样做:
SELECT DISTINCT prod_id, id, prod_picture FROM products
这给了我所有的表...我只需要每张产品1张图片,例如:
1 | 1 | asd.jpg
2 | 3 | weq.jph
不
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)
我必须只过滤“prod_list.id”......
答案 0 :(得分:5)
您应该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
答案 1 :(得分:4)
SELECT prod_id, id, prod_picture
FROM products
GROUP BY prod_id
答案 2 :(得分:3)
使用group by prod_id
,
SELECT prod_id, id, prod_picture FROM products group by prod_id
仅在不使用此sql_mode的情况下运行时才有效:ONLY_FULL_GROUP_BY,默认值为空(未设置模式)。
答案 3 :(得分:2)
SELECT
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)
GROUP BY prod_list.id
这应该有用。