有A,B,C三个表,
A表有字段a1、a2、a3
B表有字段b1、b2、b3
C表有字段c1、c2、c3、c4、c5
要求:
  select * from A where A的查询条件
  如果 A.a1字段的值=1,A.a2字段的值=5,则外联接B表,链接条件为A.a3=B.b1
  如果 A.a1字段的值=2或3,则外联接C表,链接条件为A.a3=C.c2
  查询结束后,如果A表记录为0,则显示错误error1,如果B表记录为0,则显示错误error2,如果C表记录为0则显示错误error3,如果B.b2的值=0,则显示错误error4,如果C.c5的值=1,则显示错误error5--------------------------------------------------------------------------
请问以上要求可以写在一个SQL语句里吗?怎么写?如何分别判断错误?

解决方案 »

  1.   

    A表记录为0,则显示错误error1
    B.b2的值=0,则显示错误error4
    C.c5的值=1,则显示错误error5如果3个条件都成立就显示error1+error4+error5?
      

  2.   

    后面有很多如果,一条sql语句貌似搞不定!
      

  3.   

    根据条件关联不同的表,能写在一条SQL中吗?
      

  4.   

    select a.* from A left join B on A.a3=B.b1 where A.a1=1 and A.a2=5
    union all
    select a.* from A left join C on A.a3=C.c2 where A.a1 in(2,3)
     
      

  5.   


    请问A本身的“where A的查询条件”写在哪里?
      

  6.   

    select * from 
    (select a.* from A left join B on A.a3=B.b1 where A.a1=1 and A.a2=5
    union all
    select a.* from A left join C on A.a3=C.c2 where A.a1 in(2,3)
    ) a where A的条件,
    这样好像没有什么意义,你分支判断吧。 
      

  7.   

    a.*  这是个什么意思?
    select * from A left/right join B on .