MySQL SELECT x ОТ ГДЕ НЕ ВХОДИТ (SELECT x ОТ b) - Неожиданный результат

Я нахожу другое решение:

<input type="text" class="disabled" name="test" value="test" />

Класс «отключен» immitate отключенный элемент по непрозрачности:

<style type="text/css">
    input.disabled {
        opacity: 0.5;
    }
</style>

И затем отмените событие, если элемент отключен, и удалить класс :

$(document).on('click','input.disabled',function(event) {
    event.preventDefault();
    $(this).removeClass('disabled');
});
29
задан Chris Burgess 16 June 2009 в 12:24
поделиться

4 ответа

Из документации :

Чтобы соответствовать стандарту SQL, IN возвращает NULL не только если выражение на левая сторона - NULL, но также если совпадение не найдено в списке, а одно из выражений в списке - NULL.

Это как раз ваш случай.

И IN, и NOT IN возвращают NULL, что не является приемлемым условием для пункта WHERE.

Перепишите ваш запрос следующим образом:

SELECT  *
FROM    match m
WHERE   NOT EXISTS
        (
        SELECT  1
        FROM    email e
        WHERE   e.id = m.id
        )
44
ответ дан Quassnoi 16 June 2009 в 12:24
поделиться

... или если вы действительно хотите использовать NOT IN, вы можете использовать

SELECT * FROM match WHERE id NOT IN ( SELECT id FROM email WHERE id IS NOT NULL)
38
ответ дан auris 16 June 2009 в 12:24
поделиться

Я немного не в курсе подробностей того, как MySQL работает с нулями, но вот две вещи, которые нужно попробовать:

SELECT * FROM match WHERE id NOT IN 
    ( SELECT id FROM email WHERE id IS NOT NULL) ;

SELECT
    m.*
FROM
    match m
    LEFT OUTER JOIN email e ON
        m.id = e.id
        AND e.id IS NOT NULL
WHERE
    e.id IS NULL

Второй запрос выглядит противоречащим интуитивно, но он выполняет условие соединения. а затем условие где. Это тот случай, когда объединения и предложения не эквивалентны.

6
ответ дан Eric 16 June 2009 в 12:24
поделиться

Вот некоторый SQL, который на самом деле имеет смысл:

SELECT m.id FROM match m LEFT JOIN email e ON e.id = m.id WHERE e.id IS NULL

Простой всегда лучше.

-2
ответ дан DrupalFever 16 June 2009 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: