永发信息网

sql多表联合查询 数据不正确。

答案:2  悬赏:60  手机版
解决时间 2021-03-15 03:40
四张表联合在一起查询,但查询出来的有多列中生成了重复数据,比如A表(c_id,name)、B表(c_id,d_id,b_f,b_d)、C表(id,phone)、D表(id,y)
我想通过A表的name查询到name对应的c表中的phone,d表的y,b表中的b_f,b_d,但我自己写的始终会多出来很多的数据,要么就是数据不全,请大神帮忙。
SELECt (SELECT user_name FROM xp_users WHERe id = xup.user_id) mobile,(SELECt packet_value FROM xp_redpacket WHERe id = xup.packet_id) packet,xup.valid_start timestart,xup.valid_end timeend,CASE WHEN ISNULL(xup.order_id) AND xup.use_time IS NOT NULL THEN '2' WHEN ISNULL(xup.use_time) THEN '0' ELSE '1' END isUse,xup.use_time timeuse FROM xp_user_packet xup,xp_order xpo WHERe xup.user_id=(SELECt user_id FROM xp_order WHERe order_sn='HL1440766295435') AND xup.user_id = xpo.user_id GROUP BY xup.packet_id
以上的是我实际的sql语句。查出来的数据不正确。
最佳答案
SELECt c.phone, d.y, b.b_f, b.b_d
FROM A
LEFT JOIN C ON A.c_id = C.id
LEFT JOIN B ON C.id = B.c_id
LEFT JOIN D ON B.d_id = D.id
全部回答
create view_ticket as select id,ticket from a group by id,ticket union select id,ticket from b group by id,ticket union select id,ticket from c group by id,ticket 首先,在每句里去掉重复的,这样能保证三个查询中,每个子查询无重复 然后union 本身就是能自动去重,也就是如果a,b,c中三个查询中有互相重复的数据,会过滤掉 顺便解释一下,union all是不会去重的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
芜湖在省外的知名度怎么样?
刘姓以子取名字?????
血液葡萄糖高6.86mmol/l是什么意思 如何调节
这个是什么花?谢谢,成长速度惊人!!! 10
河北保定市址坊头至丽景蓝湾c区的公交车
为什么粤语被称为鸟语
塘沽,天津,北京一带有动漫展吗?
react native怎么设置圆角
为什么excel的单元格中的套的公式计算不出结
2015款长安逸动零部件报价表
为什么是13响礼炮打开孔府重光门?
常用的4A电流的SMD肖特基二极管有哪些型号
请问谁有绿箭侠全季百度云,谢谢!
阿松声优见面会熟肉
世界上,第一台挖掘机是谁,什么时间发明的?
推荐资讯
天然居旅社这个地址在什么地方,我要处理点事
潞城区长治潞城农商银行24小时自助银行(石梁
广东怀集高铁站在哪里?
延安大学附近有什么快捷酒店
磁县幼儿园哪个好
高邮车管所现在星期六上班吗
黄记煌三汁焖锅万都商厦店这个地址在什么地方
捷达曲轴位置传感器对应的盘是否有缺口
身高153,体重120斤要不要减肥?
怎么创建公邮啊,就是那种可以多人登录的邮箱
三个老人回忆年轻时的视频其中一个手掉了
有关东方妖妖梦EXTRA模式开启的问题
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?