表A 用户信息表 
 
id name .....
01 zhang
02 wang
03 li
04 liu表B 用户每天的登记表
date   id  Flag.... 
070312 01  0
070312 03  1
070313 01  1
070313 02  0按日期查询数据库,如果有用户没有登记,B表的数据为空
想得到的结果是(070313为条件查询)
A.id A.Name  B.Flag `...
01    zhang    1
02    wang     0
03    li      null
04    liu     null望大家指点~~~~!!!!

解决方案 »

  1.   

    try:select a.id, a.name,c.flag from a left join (select distinct b.id,b.flag from b where b.date='070313')c
    on a.id=c.id;ps:如果每天每人不可能会有多次的登记的话,去掉distinct
      

  2.   

    create table db1 (id char(2) not null, name char(4) not null,primary key (id)) engine=innodb,default charset=utf8
    insert into db1 values('01','zhang'),('02','wang'),('03','li'),('04','liu');
    create table db2 (date char(6) not null,id char(2) not null, Flag char(1) not null) engine=innodb,default charset=utf8;
    insert into db2 values('070312','01','0'),('070312','03','1'),('070313','01','1'),('070313','02','0');
    select a.id,a.name,b.Flag from db1 a left join db2 b on (a.id = b.id and strcmp(b.date,'070313') = 0)
      

  3.   

    query result(4 records)
    id name Flag
    01  zhan  1
    02  wang  0
    03  li  (NULL)
    04  liu  (NULL)
      

  4.   

    顺便再问一个问题
    我试用
    IF(A.STATUS0,'管理员','员工')取出来的结果被自动截掉了一个字管理
    员工
    管理这是为什么???