怎么只取join另外一张表的一行数据 ?
简化下是这样的情形
a表
no
1
2
3
b表
no item
1 q
1 w
1 e
2 q
2 w
3 w
3 e
select a.*,b.item from a left join b on a.no = b.no
比如a.no是一张单号,b.item是物品,在b中,一个no可能有多个item,于是取出来的数据中可能有多条a.no是重复的行,但是我现在只想取得到的item的第一条,使a.no不会重复,应该怎么写?
我想取出来的结果是
1 q
2 q
3 w
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
在b中,一个no可能有多个item,可以先写个group by子查询,将no,item变成一对一,如同一个no中,item取最小值
然后用在这个子查询和a表进行关联
可以使用order by
请采纳
no item
1 e
2 q
3 e
上面我写的是取同一个no下item排在最前的值,如果你不想这样,你可以修改order by的条件,比如你想时间(假如有)
再比如改成partition by b.[no] order by %%physloc%%)就是按照行的物理地址顺序取最靠前的