我在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