首页 新闻 会员 周边 捐助

CYQ.DATA 进行左连接等操作怎么写

0
[已解决问题] 解决于 2016-10-17 09:31

SELECT * FROM A 

LEFT JOIN B ON A..=B...

如题中应该怎么写

悠悠木子李的主页 悠悠木子李 | 菜鸟二级 | 园豆:248
提问于:2016-08-19 09:08
< >
分享
最佳答案
0

1:用MAction或MProc,就是一般的T-SQL语句,如:

using(...=new MAction(sql语句))  或 using(....=new MProc(sql语句)

根据上面的回答,你可能是想问MDataTable怎么进行多表链接。

MDataTable有个JoinOnName属性和Join方法。

比如已经有A表的dtA。

dtA.JoinOnName="ID";

MDataTable joinDt=dtA.Join("表B","表B的关联列名",指定B表要追加的列 不写则所有);

具体可以看SVN的Demo下的MDataTable的用法。

奖励园豆:5
路过秋天 | 老鸟四级 |园豆:4787 | 2016-08-19 09:30

直接用T-SQL语句 原生执行0.07S,金牛测试 只查询就写日志中是2S

我不是要多MdataTable连接

我是想 使用join方法 直接查询数据库 是不是要 把A和B 都要用  new Maction 查出来? 再连接

悠悠木子李 | 园豆:248 (菜鸟二级) | 2016-08-19 09:55

@悠悠木子李: 

直接 new MAction(sql语句)就好了。

第1次执行,还有数据库相关的元数据缓存的开销,后续有缓存,就不会了。

路过秋天 | 园豆:4787 (老鸟四级) | 2016-08-19 11:08

@路过秋天: 

new MAction(只能写表名)

目前用的是 new MProc(T-SQL) 框架是金牛 日志显示2S多 在数据库查询是0.07

还有什么更快的方法吗?

悠悠木子李 | 园豆:248 (菜鸟二级) | 2016-08-19 13:17

@悠悠木子李: 

如果MProc里面的DebugInfo记录的执行时间,那就是ADO.NET的时间了。

ADO.NET已经微软给的底层,它要是慢,大伙都不好办。

不过我是不太相信,数据库查询0.07,ADO.NET会慢到2S多。

除非日志中间还包括了其它时间。

路过秋天 | 园豆:4787 (老鸟四级) | 2016-08-19 14:49
其他回答(2)
0

不就是A中列跟B中列相等的吗?

SELECT * FROM A LEFT JOIN B ON A.COLUMN=B.COLUMN

顾晓北 | 园豆:10898 (专家六级) | 2016-08-19 09:16

不是T-SQL语句,是框架下的。

支持(0) 反对(0) 悠悠木子李 | 园豆:248 (菜鸟二级) | 2016-08-19 09:22
0

dtA.JoinOnName="ID";

MDataTable joinDt=dtA.Join("表B","表B的关联列名",指定B表要追加的列 不写则所有);

小熊vs | 园豆:20 (初学一级) | 2016-08-19 14:33

2个表不查出来 能直接关联吗?

Maction 表A 出来了,表B还没查询

支持(0) 反对(0) 悠悠木子李 | 园豆:248 (菜鸟二级) | 2016-08-22 15:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册