2013-02-15 145 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文件时,我注意到旧表格每个字段前面的前一个空格。我刚刚编辑脚本来排序和删除空格,现在它就可以工作。令人讨厌的,因为我会看到尾随空间,但我使用的工具似乎在我查看它时减去了前面的空间。

感谢您的时间家伙!