SQLS数据库如何查询三张表里相同ID的记录到一张表里,无值填0
a, b, c 三张表结构如下 
a: 
id name 
1 小明 
2 小张 b: 
id core 
1 80 
1 90 c: 
id ave 
1 30 
1 20 
我想问的是,假设 b,c表都连的是a表的id,查询三张表的相同ID的记录到一张表上,当b或c表无ID=2记录时,当查询id=2的记录到联合的表就没有显示,请问怎么实现查询a.id=b.id and a.id=c.id 时 ,显示如下联合表: 
id core ave 
2   0    0 也就是在b,c表上没有ID=2的记录时,core 和 ave都显示0 
请问大家,如果在数据库里实现不了,可以用DATAGRID实现吗?

解决方案 »

  1.   

    我觉得你何不把id=2  这条记录 ,分别添加到b和c表里呢?因为做连接查询的时候a.id=b.id and a.id=c.id   这个已经决定了只读出 id相等的记录如果硬要实现的话,只能在已经的基础上在添加一个函数(可以写存储过程)不提倡这样做,还是建议把数据库设计好
      

  2.   

    不过你这个表的设计确实很有问题从常理来说,b表应该还有一个字段是课程,c表就不该有(有也应该是一个视图),因为c表的数据是根据b表的数据做聚合得到的
      

  3.   

    你试一试 selcet  * from a,b,c 
    再根据需要自己改下
      

  4.   

    select a.id,core=case when b.core is null then 0 else b.core end,ave=case when c.ave is null then 0 else c.ave end from a,b,c where a.id=b.id and a.id=c.id
      

  5.   

    同意楼上的这段SQL代码!用Case来判断