Сравнение двух строк из двух таблиц в MySQL с отображением только отрицательных результатов

Итак, у меня есть таблица под названием «HoldingQueue», и я хочу сравнить две строки с двумя значениями и вернуть каждую строку, которая не соответствует ОБОИМ этим значениям. Вот пример содержания:

* * * * * * * * * * * *
* ItemCode * Channel  *
* * * * * * * * * * * *
* 1PX1     * Test     *
* * * * * * * * * * * *
* 2PX1     * Test     *
* * * * * * * * * * * *
* 3PX1     * Test2    *
* * * * * * * * * * * *

И запрос:

SELECT * FROM HoldingQueue WHERE ItemCode<>"1PX1" AND Channel<>"Test";

Это возвращает ТОЛЬКО «3PX1 | Test2» — где я хочу, чтобы он возвращал все, что не является «1PX1 | Test», поэтому «2PX1 | Test» также должен возвращаться.

Любые идеи? Типа бьюсь головой о стену здесь.

Редактировать: хорошо, значит, он работает с небольшим набором данных, используя ИЛИ... но я только что понял проблему, с которой столкнулся. Я пытаюсь вытащить «ItemCode» и «Channel», чтобы сравнить их с другой таблицей, в которой есть несколько записей, но теперь я понимаю, что, поскольку в этой таблице есть НЕСКОЛЬКО записей, ВСЕ квалифицируется по крайней мере один раз как не имеющий ни множества значений.

Я думаю, что мой вопрос сложнее, чем этот.

Правка № 2: понятно...

SELECT Channel, ItemCode FROM HoldingQueue H
WHERE NOT EXISTS
(SELECT * FROM SKUList S
    WHERE
        H.ItemCode=S.SKU
        AND
        H.Channel=S.Channel
) GROUP BY H.Channel,H.ItemCode;

Я хотел, чтобы все элементы, которые не соответствуют НИЧЕГО из второй таблицы SKUList. Это сделало это. Отмечу ответ Сергея Кудрявцева, потому что он правильно ответил на мой первоначальный вопрос (что не учитывало большую часть проблемы, с которой я столкнулся)


person rwhit85    schedule 24.10.2012    source источник


Ответы (1)


Измените AND на OR в своем запросе, чтобы он был

SELECT * FROM HoldingQueue WHERE ItemCode<>"1PX1" OR Channel<>"Test";
person Sergey Kudriavtsev    schedule 24.10.2012
comment
Ну, похоже, это работает с небольшой выборкой, но не с большим набором данных, с которым я пытаюсь заставить его работать. Я обновлю свой основной пост. - person rwhit85; 24.10.2012