詳細はSQL EXISTS演算子です。
EXISTS演算子
EXISTS演算子は、クエリのサブフレーズが記録されているかどうかを判断するために使用されます。一つ以上のレコードがあれば、Trueに戻ります。そうでなければ、Falseに戻ります。
SQL EXISTS文法
本教程では、RUNOOBサンプルデータベースを使用します。
以下は「Websites」表から選択したデータです。
総アクセス量(countフィールド)が200より大きいウェブサイトが存在するかどうかを調べたいです。
以下のSQL文を使います。
EXISTSはNOTと一緒に使用できます。クエリ文に合わないレコードを検索します。
以上がSQL EXISTS演算子の詳細です。SQL EXISTS演算子に関する資料は他の関連記事に注目してください。
EXISTS演算子は、クエリのサブフレーズが記録されているかどうかを判断するために使用されます。一つ以上のレコードがあれば、Trueに戻ります。そうでなければ、Falseに戻ります。
SQL EXISTS文法
SELECT column_name(s)
FROM table_name
WHERE EXISTS
(SELECT column_name FROM table_name WHERE condition);
プレゼンテーションデータベース本教程では、RUNOOBサンプルデータベースを使用します。
以下は「Websites」表から選択したデータです。
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | | https://www.taobao.com/ | 13 | CN |
| 3 | | http://www.runoob.com/ | 4689 | CN |
| 4 | | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
+----+--------------+---------------------------+-------+---------+
次は「access_」ですロゴマーク「ウェブサイトアクセス記録表のデータ:
mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date |
+-----+---------+-------+------------+
| 1 | 1 | 45 | 2016-05-10 |
| 2 | 3 | 100 | 2016-05-13 |
| 3 | 1 | 230 | 2016-05-14 |
| 4 | 2 | 10 | 2016-05-14 |
| 5 | 5 | 205 | 2016-05-14 |
| 6 | 4 | 13 | 2016-05-15 |
| 7 | 3 | 220 | 2016-05-15 |
| 8 | 5 | 545 | 2016-05-16 |
| 9 | 3 | 201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)
SQL EXISTSの例総アクセス量(countフィールド)が200より大きいウェブサイトが存在するかどうかを調べたいです。
以下のSQL文を使います。
SELECT Websites.name, Websites.url
FROM Websites
WHERE EXISTS (SELECT count FROM access_log WHERE Websites.id = access_log.site_id AND count > 200);
上記のSQL出力を実行した結果は以下の通りです。EXISTSはNOTと一緒に使用できます。クエリ文に合わないレコードを検索します。
SELECT Websites.name, Websites.url
FROM Websites
WHERE NOT EXISTS (SELECT count FROM access_log WHERE Websites.id = access_log.site_id AND count > 200);
上記のSQL出力を実行した結果は以下の通りです。以上がSQL EXISTS演算子の詳細です。SQL EXISTS演算子に関する資料は他の関連記事に注目してください。