我有一个执行得很好的查询,直到我尝试将结果插入到一个新表中。在全面搜索和改变这些与我原来的查询没有太大差别的东西之后,我希望有人能够弄清楚发生了什么。使用SELECT LEFT JOIN插入
INSERT INTO new_table(col1, col2, col3, col4)
SELECT t1.col1, t2.col2, t1.col3, t1.col4
FROM table1 t1 LEFT JOIN table2 t2 ON (t1.col1=t2.col1)
WHERE (t2.col1 IS NOT NULL)
当我运行此查询,就好像我刚才说的INSERT INTO NEW_TABLE SELECT * FROM表1,这显然削减了任何匹配的值从表2新的表被填满。正如我所说的,在没有INSERT语句的情况下运行此查询将返回准确的结果。有任何想法吗?
错列类型? – Sebas 2013-02-28 18:24:46
你为什么要在col1上进行左连接,然后让'WHERE'成为't2.col1 IS NOT NULL'?这会生成与常规连接相同的设置。 – dnagirl 2013-02-28 18:30:37
@ Sebas这是令人尴尬的,但是,这是问题所在。感谢让我看看。可以发誓他们是一样的。 – Tim 2013-02-28 18:34:26