我在mysql中有两个表,当我试图根据公共列连接这两个表时,它返回null,即使这两个表中的列中的值都相同。在mysql中返回null的表连接
Table_1 structure :
id VARCHAR (!2) - index
string1 VARCHAR (15)
string2 VARCHAR (50)
string3 VARCHAR (20)
city VARCHAR (50)
zip VARCHAR (20)
Table_2 structure :
string1 VARCHAR (15) -- index
string2 VARCHAR (50) -- index
string3 VARCHAR (20)
city VARCHAR (50)
zip VARCHAR (20)
id_1 int (6)
我使用的查询:
为ID_1SELECT p.id, pr.id_1
FROM table_1 as p
LEFT JOIN table_2 as pr
ON p.string1 = pr.string1
AND p.string2 = pr.string2
AND p.city = pr.city
AND p.zip = pr.zip
该查询返回空值。在这两个表格中,大多数行的列数都相同,我不明白为什么会发生这种情况。有人可以告诉我为什么会发生这种情况,为什么会发生这种情况。
数据模型:
TABLE_1
id_1 string1 string2 string3 city zip
1 abc cde efg ghi 00001-13
2 cde efg abc abc 00002
id_2 string1 string2 string3 city zip
3 abc cde efg ghi 00001-13
4 cde efg abc abc 00002
结果预期:
id_1 id_2
1 3
2 4
的结果而获得:
id_1 id_2
1 null
2 null
'pr'部分在查询中被定义在哪里? – summea 2014-09-12 16:11:28
看看你的加入。你说p.string1 = pr.string1。这可以;但看看你和你的下一部分。 p.string1 = pr.string2。这两个都不能被验证。你的意思是p.string2 = pr.string2 – ItalianStallion 2014-09-12 16:13:19
你应该编辑这个问题把'pr'别名放在'table2'之后。 – 2014-09-12 16:13:42