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请问怎样写?望各位不吝赐教,谢谢
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请问怎样写?望各位不吝赐教,谢谢
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]
目前还不支持 双外连接[align=center]==== 思想重于技巧 ====
[/align]
//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]