select a.x, b.y, c.z from a
join b on a.id = b.aId
left join c on b.id = c.bId;因为b表与c表是1对多的关系,所以数据存在重复,比如
x y z
1 2 a
1 2 b
1 3 c
1 3 d现在想x和y是唯一的,z无所谓,结果比如
x y z
1 2 a
1 3 c请问sql如何写啊,谢谢啦
join b on a.id = b.aId
left join c on b.id = c.bId;因为b表与c表是1对多的关系,所以数据存在重复,比如
x y z
1 2 a
1 2 b
1 3 c
1 3 d现在想x和y是唯一的,z无所谓,结果比如
x y z
1 2 a
1 3 c请问sql如何写啊,谢谢啦
from tb_name
group by x, y;
如果要查的字段很多的话,都放在group by 后面吗?
是其实方法很多
select *
from tb_name a
where rowid = (select max(rowid) from tb_name b where b.x=a.x and b.y=a.y)
聚合函数或者可以这样 同老兵的方法类似
SELECT a.x, b.y, c.z
FROM a JOIN b ON a.ID = b.aid
LEFT JOIN
(SELECT *
FROM c1
WHERE ROWID IN (SELECT MAX (ROWID)
FROM c c2
GROUP BY ID)) c ON b.ID = c.bid
;
join b on a.id = b.aId
left join c on b.id = c.bId ) t where rn =1