1

3列のテーブルがある場合

ユーザーID、イベントID、エントリータイム
 

そして次のような値

userid,eventid,entrytime 1 1 NULL 2 1 2012-01-01 1 2 2012-01-01 2 2 2012-01-01 3 1 NULL 3 2 NULL

entrytime が常に NULL であるユーザー ID を選択する最良の方法は何ですか?

4

4 に答える 4

4

COUNT(entrytime)集約は NULL 値を排除するため、それを使用して、節で 0 と比較することにより、NULL 以外の値がないものを判別できますuseridentrytimeHAVING

SELECT userid, COUNT(entrytime)
FROM yourtable
GROUP BY userid
HAVING COUNT(entrytime) = 0

これがライブデモンストレーションです(結果はuserid= 3)

于 2012-10-18T12:32:33.630 に答える
3

これを試して:

select userid from
(select userid,entrytime,count(*) from yourtable 
group by userid,entrytime)a
group by userid
having count(*)=1 and max(entrytime) is null


SQL フィドルのデモ

于 2012-10-18T12:55:49.967 に答える
1
SELECT DISTINCT t1.UserId
FROM <TableName> t1
    LEFT JOIN <TableName> t2 ON t1.UserID = t2.UserID AND t2.EntryTime IS NOT NULL
WHERE t2.UserID IS NULL
于 2012-10-18T12:40:52.673 に答える
-1
    select userid from table_name  where entrytime is null
于 2012-10-18T12:32:07.997 に答える