2016-10-31 15 views
0

ここでは、NULLNOT NULLの両方の値をMySQLのテーブルから取得する方法を理解しようとしています。私は両方の型を取得するかどうかを確認するnullとnot nullを指定することを省略しようとしましたが、運がありません。MySQLのNULL値とNOT NULL値の選択

NULLNOT NULL
SELECT 
    COUNT('') as cnt 
    FROM returned_items ri 
    LEFT JOIN returns r ON ri.return_id = r.return_id 
    WHERE r.storenum IN (11) 

SELECT 
    COUNT('') as cnt 
    FROM returned_items ri 
    LEFT JOIN returns r ON ri.return_id = r.return_id 
    WHERE r.storenum IN (11) 
    AND ri.disposition is NULL AND NOT NULL 

何かアドバイスは大歓迎です。

+2

(なぜあなたはそれを行うだろうかわからないが)のような任意の他の可能な値を行いますか? –

+1

また、 "AND ri.dispositionはNULLでもなくNULLでもない"とは、NULLとNOT NULLの両方に一致していなければならないということです。 – Adrianopolis

+2

矛盾にかかわらず、構文はANDでなければなりません。ri.dispositionはNULLです。ri.dispositionNOT NULL この場合、すべての条件で列を繰り返す必要があります。 – scaisEdge

答えて

2

NULLNOT NULLの両方を取得しようとしているので、本当に条件が必要ないとは思わない...すべてのレコードを取得しようとしていることを意味しているため、条件は意味をなさないが、クエリとヌルヌルとされていない他のUNION ALL

SELECT 
    COUNT(*) as cnt 
    FROM returned_items ri 
    LEFT JOIN returns r ON ri.return_id = r.return_id 
    WHERE r.storenum = 11 
    AND ri.disposition is NULL 
UNION ALL 
SELECT 
    COUNT(*) as cnt 
    FROM returned_items ri 
    LEFT JOIN returns r ON ri.return_id = r.return_id 
    WHERE r.storenum = 11 
    AND ri.disposition is NOT NULL