以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]SQL语句问题  (http://www.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
--  

谢谢,你用了一个笨办法,也到达了目的,代码没有你的简单