开发者社区> 问答> 正文

求助:多表关联,请高手指教,如何写SQL?(重点是要把没有缴费的人名,也要列举出来):报错

求助:多表关联,请高手指教,如何写SQL?(重点是要把没有缴费的人名,也要列举出来)

原表是ABCD四张表      
A表       
学号姓名性质分组    
A001张三气球一组    
A005李四足球一组    
A002王五足球一组    
A003赵六足球二组    
A004张七气球二组    
        
B表       
分组地址      
一组学校A区      
二组到人小去      
        
C表       
缴费情况分组学号     
JF001一组A001     
JF002一组A002     
JF003二组A004     
        
D表       
缴费情况学号型号金额    
JF001A001QQ-A5    
JF001A001QQ-B8    
JF001A001QQ-C10    
JF002A002ZQ-A25    
JF002A002ZQ-B30    
JF002A002ZQ-C50    
JF003A004QQ-B16    
JF003A004QQ-C30    
        
需要通过SQL,得到结果表     
分组学号姓名缴费情况型号金额性质地址
一组A001张三JF001QQ-A5气球学校A区
一组A001张三JF001QQ-B8气球学校A区
一组A001张三JF001QQ-C10气球学校A区
一组A002王五JF002ZQ-A25足球学校A区
一组A002王五JF002ZQ-B30足球学校A区
一组A002王五JF002ZQ-C50足球学校A区
一组A005李四   足球学校A区
二组A004张七JF003QQ-B16气球到人小去
二组A004张七JF003QQ-C30气球到人小去
二组A003赵六   足球到人小去
        
 

展开
收起
kun坤 2020-06-09 13:47:30 390 0
1 条回答
写回答
取消 提交回答
  • SELECT   * FROM   (SELECT     * a.分组,     a.学号,     a.姓名,     '缴费情况',     '型号',     '金额',     a.性质,     b.地址   FROM     a     LEFT JOIN b       ON a.分组 = b.分组   WHERE a.学号 NOT IN     (SELECT       c.学号     FROM       c)     UNION     SELECT       a.分组,       a.学号,       a.姓名,       d.缴费情况,       d.型号,       d.金额,       a.性质,       b.地址     FROM       a       LEFT JOIN b         ON a.分组 = b.分组       LEFT JOIN c         ON a.学号 = c.学号       RIGHT JOIN d         ON a.学号 = d.学号) ORDER BY 分组######回复 @tqyin : 哎呀!高手啊!谢谢您!我咋没有想到把 没有缴费的人员单独筛选出来 union all 进去呢? 太感谢了,谢谢老师!######回复 @pargy : 修改了SQL再看看######您这个SQL,还是出不来没有缴费的人员姓名那两行。 我刚才测试了一下,谢谢您!

    2020-06-09 13:47:41
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载