1

私は趣味のプログラムに取り組んでおり、これを行うためのより良い方法があると考えています。私が持っているのはここにあるこのクエリです:

SELECT username
FROM users

これは、可能なすべての一致を返します。次に、このクエリを実行します。

SELECT username
FROM alreadyDone
WHERE Name='test'

それは私たちが完了した試合を私に与えます。次に、これらすべてをJavaのアレイリストに追加し、コレクションインターフェイスを介して同じものを削除します。

MySQLを介してこれをすべて実行する方法があると思います。また、さまざまな結合などをいじってみると、どちらに進むべきかわかりません。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

2

私が正しく理解していれば、あなたは「テスト」のalreadyDoneテーブルにないユーザーを見つけようとしています。

SELECT u.username
    FROM users u
    WHERE NOT EXISTS(SELECT 1
                         FROM alreadyDone ad
                         WHERE ad.username = u.username
                             AND Name = 'test');

または、次のように書くこともできます。

SELECT u.username
    FROM users u
        LEFT JOIN alreadyDone ad
            ON u.username = ad.username
                AND Name = 'test'
    WHERE ad.username IS NULL;
于 2012-05-30T20:42:22.833 に答える