A表
room_id    room_name    staff_id
     10        room1        001
     11        room2        002B表
staff_id    staff_name    del_flg
     001         zhang          0
     002         wang           1select A.room_id,A.room_name,B.staff_name from A left join B ON A.staff_id=B.staff_id我想检索的时候,不检索出来B表del_flg=1的数据,改成
select A.room_id,A.room_name,B.staff_name from A left join B ON A.staff_id=B.staff_id
WHERE B.del_flg=0就变成直连了,没办法我加入了子查询
select A.room_id,A.room_name,B.staff_name from A left join (select staff_id,staff_name from B where del_flg=0)as B ON A.staff_id=B.staff_id请问能不使用子查询吗?B表的del_flg=0的条件应该怎么加?

解决方案 »

  1.   

    select A.room_id,A.room_name,B.staff_name from A left join B ON A.staff_id=B.staff_id
    WHERE B.del_flgM<>1
    这样不就可以了~
      

  2.   

    select A.room_id,A.room_name,B.staff_name from A left join B ON A.staff_id=B.staff_id
    WHERE B.del_flg<>1
      

  3.   

    我想检索的时候,不检索出来B表del_flg=1的数据既然你要不为1的 那就用筛选条件 <>1阿 。。有什么问题么
      

  4.   

    补充一下吧A表
    room_id room_name staff_id
      10 room1 001
      11 room2 002B表
    staff_id staff_name del_flg
      001 zhang 0
      002 wang 1我想得到如下数据:
    room_id    room_name   staff_name
         01        room1        zhang
         11        room2         (空)因为Bwang的del_flg=1了
      

  5.   

    mysql> select A.room_id,A.room_name,B.staff_name from A left join B ON A.staff_id=B.staff_id and b.del_flg=0;
    +---------+-----------+------------+
    | room_id | room_name | staff_name |
    +---------+-----------+------------+
    |      10 | room1     | zhang      |
    |      11 | room2     | NULL       |
    +---------+-----------+------------+
    2 rows in set (0.00 sec)
      

  6.   

    select A.room_id,A.room_name,B.staff_name from A left join B ON A.staff_id=B.staff_id
    WHERE B.del_flg=0
    你自己写的不是可以么?