Oracle在具有多个连接的字段组上使用DISTINCT选择查询

时间:2014-05-06 14:26:03

标签: sql oracle join

所以现在的查询是:

SELECT 
    i.id, i.name, i.status, i.date_return, 
    a.category, a.year, a.type,
    c.forename, c.lastname, c.type, c.dob, c.address
FROM item i
RIGHT JOIN account a ON a.item_id = i.id
LEFT JOIN client c ON c.account_id = a.id
ORDER BY i.date_return

问题是我需要返回以下列组的结果集 每行都是唯一的(i.id),(a.category,a.year)和(c.forename,c.lastname,c.type,c.dob)。

有没有办法在Oracle中使用DISTINCT进行连接?

1 个答案:

答案 0 :(得分:0)

独特的“专栏组”是什么意思?如果您要使用相同的 item_id 类别年度折叠帐户行,但不同的类型< / strong>,您不能在select中包含 account.type 。 同样适用于 client.address ,而(假设 item.id 是唯一键),可以使用 item 中的所有字段。

SELECT DISTINCT
i.id, i.name, i.status, i.date_return, 
a.category, a.year,
c.forename, c.lastname, c.type, c.dob
FROM item i
RIGHT JOIN account a ON a.item_id = i.id
LEFT JOIN client c ON c.account_id = a.id
ORDER BY i.date_return