从SQL查询中删除重复项(不仅仅是"使用不同")

Dav*_*ave 13 sql distinct duplicates

这可能很简单,这是我的查询:

SELECT DISTINCT U.NAME, P.PIC_ID
FROM USERS U, PICTURES P, POSTINGS P1
WHERE U.EMAIL_ID = P1.EMAIL_ID AND P1.PIC_ID = P.PIC_ID AND P.CAPTION LIKE '%car%';
Run Code Online (Sandbox Code Playgroud)

但是这只会删除一行具有相同的u.name和p.pic_id的重复项.我想要它,如果有任何重复的名称,它只是遗漏了其他行.这是一个奇怪的查询,但一般来说,如何将distinct应用于SELECT子句的单个列?

Joe*_*lli 18

任意选择保持最小PIC_ID.另外,请避免使用隐式连接语法.

SELECT U.NAME, MIN(P.PIC_ID)
    FROM USERS U
        INNER JOIN POSTINGS P1
            ON U.EMAIL_ID = P1.EMAIL_ID
        INNER JOIN PICTURES P
            ON P1.PIC_ID = P.PIC_ID
    WHERE P.CAPTION LIKE '%car%'
    GROUP BY U.NAME;
Run Code Online (Sandbox Code Playgroud)