我有一個執行得很好的查詢,直到我嘗試將結果插入到一個新表中。在全面搜索和改變這些與我原來的查詢沒有太大差別的東西之後,我希望有人能夠弄清楚發生了什麼。使用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