现在有一表A,表B,表A有列gpstime,表B中有列pictime。
原来筛选是select * from tableA.
现在希望在筛选结果中加入一列result,判断A中的每一行的gpstime,在B中是否有对应的行有同样值的pictime。
如果有,则result=1,否则result=0这样。
select A.*,B.id from A left join B on A.gpstime = B.pictime
这样没有对应的id字段是null,然后你在用when case取分开
select
case (select count(*) from b where a.pictime = b.pictime)
when 1 then "1"
else "0"
end as result,
a.* from a
非得写sql吗? 可以这样select gpstime from a 这个返回一个datatable dt1, select pictime from b 这个返回dt2
然后定义int result =""; for(int i=0;i<dt1.rows.count;i++){if( dt1.row[i]["gpstime"] == dt2.row[i]["pictime"]){result=1;}else{result = 0;}}
连表查询,其实还蛮简单的啦,加一个where取出记录的个数,根据记录个数返回0或者1
select A.*,CASE WHEN B.id IS NULL THEN 0 ELSE 1 END Result
from A left join B on A.gpstime = B.pictime
仅当B的pictime没有重复数据的时候适合使用
left join 即可
select A.*,B.id from A left join B on A.gpstime = B.pictime