2013-02-15 173 views
2

由於我無法解釋的原因,一個左外連接,以前工作正常,不再工作後修改其中一個表。MySQL左外連接返回NULL值

的代碼非常波濤洶涌了這一點,因爲它涉及到很多以前的連接,但在這裏我堅持這一點,它只是尋求加入其中兩個值匹配:

mysql_query ("CREATE TABLE Everything(
SELECT * from two 
    left outer join CPEs on CPEs.cpe_cust_index = two.cust_index2 
    where cust_index2 > \"0\" 
)") 
or die (mysql_error());#("this certainly didn't work\n"); 
echo "It works!\n";' 

這用於匹配兩個字段(兩個長度相同的變量)並將CPE附加到兩個字段,但現在,表中的Everything顯示NULL,無論CPE的字段應該在哪裏。

我錯過了一些明顯的東西嗎?

我能想到的是two.cust_index2不再是一個唯一的字段(儘管CPEs.cpe_cust_index是唯一的),但這應該不重要。

的領域是簡單的數字,並有明確的匹配(從觀察中)

+1

請發佈兩個表中的小數據示例。 – 2013-02-15 12:25:42

+0

另外,建議不要在連接查詢中選擇*。一定要清楚SELECT列表中的列,因爲如果連接的表具有名稱衝突,它們將不會被正確返回。 – 2013-02-15 12:26:32

+0

你可以發佈表定義嗎?稍微擔心,你聲明這些字段只是數字,但是你正在引用WHERE子句中的cust_index2值。如果two.cust_index2不再是唯一的,那麼您只會返回多行。 – Kickstart 2013-02-15 12:47:08

回答

0

@邁克爾,你已經解決了這個問題,以一種迂迴的方式。當我導出CSV文件時,我注意到舊錶格每個字段前面的前一個空格。我剛剛編輯腳本來排序和刪除空格,現在它就可以工作。令人討厭的,因爲我會看到尾隨空間,但我使用的工具似乎在我查看它時減去了前面的空間。

感謝您的時間傢伙!