2013-02-08 67 views
0

我怎样才能插入数据到从JOIN SELECT查询结果的表将数据插入到JOIN SELECT QUERY的结果表中?

我想插入b.URL下面

SELECT 
    a.ESN, 
    b.URL, 
    a.Status, 
    a.GroupID, 
    a.RouteID 
FROM STx a 
    LEFT JOIN Routes b 
    ON a.RouteID = b.RouteID 
WHERE a.GroupID = 39 
    AND a.Status = "Tested" 
order by a.ESN; 
+0

我想你不需要插入但更新。 – 2013-02-08 21:21:10

+0

由于整列为空,所以更新没有执行该作业 – user2041213 2013-02-08 21:23:54

+0

要从哪个表中选择要插入的数据? – 2013-02-08 21:25:32

回答

0
从查询的结果值=“OK”

您只需在INSERT INTO table (columns)前加上。如果您尝试在SELECT中找到b.URL值,请添加一个过滤器。

+0

不明白你的意思 – user2041213 2013-02-08 21:21:37

+0

这不会顺利。 – Kermit 2013-02-08 21:22:01

1

我想,也许这就是你需要:

UPDATE Routes b 
SET URL = 'ok' 
WHERE EXISTS 
    (SELECT * FROM STx a 
    WHERE a.GroupID = 39 
     AND a.Status = 'Tested' 
     AND a.RouteID = b.RouteID) 

这将设置所需的URL值,以“OK”。

+0

它显示0行受到影响 – user2041213 2013-02-08 21:31:36

+0

什么都没有改变...... – user2041213 2013-02-08 21:31:53

+0

你确定你在一些行中有GroupID = 39 AND St​​atus ='Tested',还有路由表中的RouteID? – Relevart 2013-02-08 21:33:01

0
insert into desire_table (col1,col2,col3,...) SELECT 
    a.ESN, 
    b.URL, 
    a.Status, 
    a.GroupID, 
    a.RouteID 
FROM STx a 
    LEFT JOIN Routes b 
    ON a.RouteID = b.RouteID 
WHERE a.GroupID = 39 
AND a.Status = "Tested" 
order by a.ESN; 

请记住,输出列是为了能够在新的桌子坐下来进行匹配,订单马瑟这意味着你的第一个选定列去col1和第二个去了col2,所以你一定要配合col1,col2等等与您的选择输出

相关问题