我使用以下代码从数据库获取值:
但是当我编写这段代码时(测试看看问题出在哪里......)我注意到查询没有从数据库中获取不同的值:
这是查询
select distinct(ca.id)as id, acc.name as accName,pIsu.name as pareentIsu, sIsu.name as subIsu ,
dv.domain_value as contractType,acc.id as accId,dvct.domain_value as contractstatus
from contracts_account ca left join business_unit pIsu on ca.parent_isu_fk = pIsu.id
left join business_unit sIsu on ca.sub_isu_fk = sIsu.id
left join business_unit acc on ca.account_fk = acc.id
left join contracts con on con.contracts_account_fk = ca.id
left join domain_values dv on dv.id = con.contract_type_fk
left join domain_values dvct on dvct.id = con.contract_status_fk
where ca.id is not null and con.contract_type_fk in ( 4466079 ) order by ca.id
这个查询根本没有返回我'独特的ID'
我究竟做错了什么?
我正在使用 postgres 8.2
您的查询被解释为:
select distinct (ca.id) as id, acc.name as accName, . . .
这是一个标准distinct
陈述。如果您只想每行一行ca.id
与第一行的值(基于order by
),然后使用distinct on
:
select distinct on (ca.id) ca.id, acc.name as accName, . . .
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)