У меня есть две таблицы в mysql, когда я попытался присоединиться к этим двум таблицам на основе общих столбцов, он вернул null, даже когда значения в столбцах в обеих этих таблицах были одинаковыми.Таблица join in mysql return 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)
Я использовал запрос:
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 для ID_1. Большинство строк имеют одинаковые данные для столбцов, сравниваемых в обеих этих таблицах, я не понимаю, почему это происходит. Может кто-нибудь, пожалуйста, скажите мне, почему это происходит и почему это происходит.
Модель данных:
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
Вы должны отредактировать вопрос, чтобы поместить псевдоним 'pr' после' table2'. –