2

mysqlテーブルの列useridに従って一意の行のみを選択したいと思います。したがって、同じユーザーIDを持つ2つの行がある場合、それらのいずれも選択されませんが、1つだけの場合は選択されます。

私は次のコードを使用します:

SELECT T.id,T.name,T.userid FROM tbltest T WHERE userid NOT IN (SELECT userid FROM tbltest WHERE tbltest.id<>T.id);

これはそれを行うための最速の方法ですか?

ありがとう!

4

3 に答える 3

11

これはどのように

SELECT T.id,T.name,T.userid 
FROM tbltest T 
GROUP BY T.userid
HAVING COUNT(T.userid) = 1;
于 2009-03-11T21:35:05.510 に答える
3

これを試して:

SELECT T.id, T.name, T.userid, count(*) AS count FROM tbltest GROUP BY T.userid HAVING count = 1;
于 2009-03-11T21:35:52.420 に答える
1

私はそれが最速の方法だとは思いません...あなたは試すことができます:

SELECT T.id, T.name, T.userid, COUNT(*) AS num 
FROM tbltest T GROUP BY T.userid HAVING num = 1

または

SELECT T.id, T.name, T.userid, COUNT(*) AS num FROM tbltest T
WHERE NOT EXISTS
(SELECT 1 FROM tbltest T2 WHERE T2.userid = T.userid AND T2.id != T.id)
于 2009-03-11T21:36:00.390 に答える