现在有表A、B、C、D,表A的字段a1是表B的主键。表A的字段a2的值可能为表C的主键值或表D的主键值,表A的字段a3是数字,如果为3,表示a2的值在表D中,如果为2,表示a2的值在表C中,如果为1,表示a2的值不在表D和表C中,如果为0,表示a2的值为空。要实现的效果:先查询表A,会返回1条记录。看它的a3值为多少,如果为3,则对表A、B、C实行连接查询,返回结果集,如果为2,则对表A、B、D实行连接查询,返回结果集,如果为1或0,则对表A、B实行连接查询,返回结果集。

解决方案 »

  1.   

    举例:表A              
    a1      a2      a3
    长沙    法院     3
    空     高等院校  2
    武汉    自定义内容 1
    北京    空     0
    空     空     0表B
    b1    b2
    空  空
    长沙 湖南
    武汉 湖北
    北京 北京表C
    c1    c2
    法院 政府部门表D
    d1         d2
    高等院校   事业单位要求查询结果为:
    长沙    法院     政府部门
    空     高等院校  事业单位
    武汉    自定义   空
    北京    北京    空
    空     空     空