oracle多表查询去重复

I_was_a_novice 2013-02-19 04:15:02
3个表

PRODUCT_ID:商品编码
PRODUCT_NAME:商品名称
SRC:图片地址
MEMBER_NAME:用户账号

【PRODUCTS】 商品表
ID PRODUCT_ID PRODUCT_NAME
1 001 商品1
2 002 商品2
3 003 商品3

【PRODUCT_PIC】商品图片表
ID PRODUCT_ID SRC
1 001 -
2 001 -
3 002 -
4 003 -
5 003 -

【SHOPPING_CART】购物车表
ID MEMBER_NAME PRODUCT_ID
1 member1 001
2 member1 002
3 member1 003
4 member2 001
5 member2 002

查询的是【购物车】表,根据PRODUCT_ID得到【商品表】的PRODUCT_NAME 和 【商品图片表】的SRC

现在用的SQL语句是:


select s.*,p.*,pic.* from SHOPPING_CART s,PRODUCTS p,PRODUCT_PIC pic where s.PRODUCT_ID = p.PRODUCT_ID and s.PRODUCT_ID = pic.PRODUCT_ID and s.MEMBER_NAME = 用户账号

现在用的语句查询的数据有重复的,语句应该怎么写
...全文
723 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajune 2013-02-19
  • 打赏
  • 举报
回复
引用 2 楼 liangtianheng 的回复:
引用 1 楼 restbely 的回复:出现重复,是因为你【PRODUCT_PIC】商品图片表的PRODUCT_ID一对多了。 select s.*, p.*, pic.* from SHOPPING_CART s inner join PRODUCTS p on s.PRODUCT_ID = p.PRODUCT_ID inner join (sele……
“over(partition by PRODUCT_ID order by id” 意思是按PRODUCT_ID分级,再按id排序
I_was_a_novice 2013-02-19
  • 打赏
  • 举报
回复
引用 1 楼 restbely 的回复:
出现重复,是因为你【PRODUCT_PIC】商品图片表的PRODUCT_ID一对多了。 select s.*, p.*, pic.* from SHOPPING_CART s inner join PRODUCTS p on s.PRODUCT_ID = p.PRODUCT_ID inner join (select ID, PRODUCT_ID, SRC ……
select s.*, p.*, pic.* from SHOPPING_CART s inner join PRODUCTS p on s.PRODUCT_ID = p.PRODUCT_ID inner join (select ID, PRODUCT_ID, SRC from (select row_number() over(partition by PRODUCT_ID order by id) as rn, PRODUCT_PIC.* from PRODUCT_PIC) where rn = 1) pic on s.PRODUCT_ID = pic.PRODUCT_ID where s.MEMBER_NAME = 用户账号 红色的部分是什么意思
小海葵1 2013-02-19
  • 打赏
  • 举报
回复
出现重复,是因为你【PRODUCT_PIC】商品图片表的PRODUCT_ID一对多了。 select s.*, p.*, pic.* from SHOPPING_CART s inner join PRODUCTS p on s.PRODUCT_ID = p.PRODUCT_ID inner join (select ID, PRODUCT_ID, SRC from (select row_number() over(partition by PRODUCT_ID order by id) as rn, PRODUCT_PIC.* from PRODUCT_PIC) where rn = 1) pic on s.PRODUCT_ID = pic.PRODUCT_ID where s.MEMBER_NAME = 用户账号

17,382

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧