以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]SQL语句问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=74921) |
-- 作者:pcxjxjhkw -- 发布时间:2015/9/22 18:01:00 -- [求助]SQL语句问题 INNER JOIN 多表生成的查询表,如何判断生成的查询表中的某一列来源于原来的哪一个表?
谢谢 |
-- 作者:大红袍 -- 发布时间:2015/9/22 18:03:00 -- 列名加上表名。或者生成的时候,就记好每列对应的表。 |
-- 作者:pcxjxjhkw -- 发布时间:2015/9/22 18:20:00 -- 老师,如何实现这样呢? 一段SQL代码中用 INNER JOIN 包括多个表,如何从该语句中将源表找出来
如: SE LECT 订购日期, {订单明细}.*, 产品名称 FROM ({订单明细} INNER JOIN {产品} ON {订单明细}.产品ID = {产品}.产品ID) INNER JOIN {订单} ON {订单明细}.订单ID = {订单}.订单ID ORDER BY 订购日期
将订单明细,产品,订单三个表名找出来,谢谢 [此贴子已经被作者于2015/9/22 18:21:11编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/9/22 18:29:00 -- 用正则把{}的值取出来即可。但没有意义。
无法知道哪列来自哪个表的。 |
-- 作者:pcxjxjhkw -- 发布时间:2015/9/22 18:31:00 -- 用正则把{}的值取出来即可
如何取?只要能取出来,我的问题也就解决了 [此贴子已经被作者于2015/9/22 18:36:25编辑过]
|
-- 作者:大红袍 -- 发布时间:2015/9/22 19:29:00 -- Dim str As String = "SE LECT 订购日期, {订单明细}.*, 产品名称 FROM ({订单明细} INNER JOIN {产品} ON {订单明细}.产品ID = {产品}.产品ID) INNER JOIN {订单} ON {订单明细}.订单ID = {订单}.订单ID ORDER BY 订购日期" Dim mc = System.Text.RegularExpressions.Regex.Matches(str, "(?<=\\{+).*?(?=\\}+)") Dim ls As New List(Of String) For i As Integer = 0 To mc.count - 1 If ls.Contains(mc(i).Value) = False Then ls.add(mc(i).Value) msgbox(mc(i).Value) End If Next |
-- 作者:pcxjxjhkw -- 发布时间:2015/9/23 12:07:00 -- 谢谢,你用了一个笨办法,也到达了目的,代码没有你的简单 |