mysql에 두 개의 테이블을 가지고 있는데, 공통 테이블을 기반으로이 두 테이블을 조인하려고했을 때이 두 테이블의 열 값이 같을지라도 null을 반환했습니다. ID_1에 대한null을 반환하는 mysql 테이블 조인
SELECT 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
이 쿼리가 반환 널 (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)
나는 쿼리를 사용했다. 대부분의 행은이 두 테이블 모두에서 비교되는 열에 대해 동일한 데이터를 가지고 있습니다. 왜 이런 일이 발생하는지 이해하지 못합니다. 왜 이런 일이 일어나는 지, 왜 이런 일이 일어나는 지 말해 줄 수 있습니까?
데이터 모델 : 결과 예상
된 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
가입하십시오. 당신은 p.string1 = pr.string1이라고 말하고 있습니다. 이건 괜찮아; 너의 다음 부분을 보라. p.string1 = pr.string2. 둘 다 유효하지 않습니다. 당신은 p.string2 = pr.string2을 의미 했습니까? – ItalianStallion
''table2' 다음에'pr' alias를 넣기 위해 질문을 편집해야합니다. –