[英]Remove duplicates from result in sql
解决方案 1 - 那是因为其中一个数据具有重复值写入不同的关键字,只有你想要的列
Select distinct id, distinct creation_date, distinct modification_date from
YourTable
解决方案 2 - 仅在 ID 上应用 distinct,一旦获得 id,您就可以在查询中使用所有数据
select * from yourtable where id in (select distinct id from drivers inner join
licenses
on drivers.user_id=licenses.issuer_id
inner join users on drivers.user_id=users.id
where (licenses.state='ISSUED' or drivers.status='WAITING')
and users.is_deleted=false )
select 上的枚举字段名称,对值为 null 的字段使用 COALESCE。
通常您不会使用 *(所有列)进行不同的查询,因为这意味着如果一列具有相同的值但 rest 不是,它将被视为不同的行。 所以你必须只区分你想要的列,然后获取数据
我怀疑你想要这样的left join
:
select *
from users u left join
drivers d
on d.user_id = u.id and d.status = 'WAITING' left join
licenses l
on d.user_id = l.issuer_id and l.state = 'ISSUED'
where u.is_deleted = false and
(d.user_id is not null or l.issuer_id is not null);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.