PHP MySQL сравнить два столбца возвращают несоответствия - PullRequest
1 голос
/ 10 февраля 2010

У меня есть две колонки в разных таблицах продуктов.

tblproduct1.partno старый список продуктов

tblproduct2.partno2 новый

Оба partno столбца должны иметь одинаковые номера моделей, но они не имеют.

При выполнении приведенного ниже запроса я получаю около 300 номеров моделей, которые не совпадают при сравнении значений из обеих таблиц. tblproduct2 имеет 1955 записей, ниже приведен запрос 1638. Я ожидаю, что он вернет 1955.

SELECT COUNT(partno)
FROM tblproduct1
  INNER JOIN tblproduct2 ON partno = partno2

Можно ли перечислить номера моделей, которые не совпадают?

Ответы [ 2 ]

2 голосов
/ 10 февраля 2010
select tblproduct1.partno from tblproduct1
   left join tblproduct2 on tblproduct1.partno = tblproduct2.partno2
   where tblproduct2.partno2 is null

показывает tblproduct1.partno, у которых нет соответствующих значений tblproduct2.partno2

0 голосов
/ 10 февраля 2010

На самом деле запрос стереофрогов является правильным. Он работает даже тогда, когда столбцы таблицы определены как «не нулевые». Я подозреваю, что вы запутали две таблицы при выполнении запроса.

это потому, что в LEFT JOIN всегда есть все строки из левой таблицы . Если во второй таблице нет подходящей записи, она будет отображаться как NULL.

Так что, если у вас есть таблица с большим количеством строк в левой (или первой) таблице, вышеуказанный запрос будет давать желаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...