2010-02-10 2 views
1

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

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

tblproduct2.partno2 это новый один

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

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

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

Есть ли способ, я могу перечислить номера модели, которые не соответствуют?

ответ

0

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

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

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

+0

Да, это работает, спасибо за объяснение, как мне перечислить модели в столбце null? Мне нужно сравнить их – jimsmith

+0

, вы можете добавить второй столбец к запросу, чтобы у вас было что сравнить: например, tblproduct1.partno, tblproduct.partName ... все лучшее – e4c5

2
select tblproduct1.partno from tblproduct1 
    left join tblproduct2 on tblproduct1.partno = tblproduct2.partno2 
    where tblproduct2.partno2 is null 

показывает tblproduct1.partno, которые не имеют соответствия tblproduct2.partno2 дорожит

+0

partno2 не является нулевым, он просто не соответствует – jimsmith

+0

извините, я вижу, что запрос работает, спасибо за ответ, я спросил e4c5, но я восстановил вопрос здесь: есть ли способ увидеть номер модели? tblproduct2.partno2 возвращает null – jimsmith

Смежные вопросы