table1 (dateline唯一)
tid, value1,dateline
1    1      2008-04-01
1    2      2008-04-02table2 (dateline唯一)
tid, value2,dateline
1    5      2008-04-02
1    6      2008-04-03我要得到tid=1的结果
dateline,   value1,  value2
2008-04-01  1        0
2008-04-02  2        5
2008-04-03  0        6请问怎样写?望各位不吝赐教,谢谢

解决方案 »

  1.   

    select table1.dateline,table1.value1,table2.value2
    from table1 left jion table2 on table1.tid=table2.tid
    union
    select table2.dateline,table1.value1,table2.value2
    from table1 right jion table2 on table1.tid=table2.tid
    where table1.tid is null[align=center]====  ====
    [/align]
      

  2.   

    没什么其他好办法了
    目前还不支持 双外连接[align=center]====  ====
    [/align]
      

  3.   

    2次查询
      //1
      rs.open;   // mySQL execute time + network transfer time (n1 条记录)
      for (....) {};    //n1 条记录
      rs.close;
      //2
      rs.open;   // mySQL execute time + network transfer time (n1 条记录)
      for (....) {};    //n2 条记录
      rs.close;一次
      rs.open;   // mySQL execute time + network transfer time (n1+n2 条记录)
      for (....) {};    //n1+n2 条记录
      rs.close;所以差别不大
    差别仅在 mySQL execute time = (SQL parse + SQL compile + SQL execute)
    所以理论是 一次 可能会略快一点。 但要看你的表结构及数据记录量。从程序设计是来说 一次 会使程序结构更清晰.
    [align=center]====  ====
    [/align]