1

私のデータベースには、

mysql> select * from peeps;
+-------+
| name  |
+-------+
| tom   |
| dick  |
| harry |
+-------+

そのテーブルにないユーザーの結果セットを返す SQL ステートメントを作成したいと考えています。

sql ????  where name in ( 'dave', 'tom')

「dave」を返す結果セットが必要です。答えは「ハリー」を返すことはできません。私は新しい一時テーブルを作成することに熱心ではありません.これは単一のステートメントではできません.

ありがとう!

4

1 に答える 1

2

このようなものはあなたのために働くでしょうか?dave要求どおりに返されます。

SELECT a.name
FROM
    (SELECT 'dave' AS name
    UNION ALL
    SELECT 'tom' AS name) a
LEFT JOIN peeps b ON b.name = a.name
WHERE b.name IS NULL

結果

| | 名前 |
--------
| | デイブ |

SQL フィドル

于 2013-01-10T19:27:46.727 に答える