SELECT account_id, product_cd, cust_id, avail_balance
>
FROM account
>
WHERE product_cd IN (SELECT product_cd FROM product
>
WHERE product_type_cd = 'ACCOUNT');
82
Глава 4. Фильтрация
+++++
| account_id | product_cd | cust_id | avail_balance |
+++++
| 1 | CHK | 1 | 1057.75 |
| 2 | SAV | 1 | 500.00 |
| 3 | CD | 1 | 3000.00 |
| 4 | CHK | 2 | 2258.02 |
| 5 | SAV | 2 | 200.00 |
| 6 | CHK | 3 | 1057.75 |
| 7 | MM | 3 | 2212.50 |
| 8 | CHK | 4 | 534.12 |
| 9 | SAV | 4 | 767.77 |
| 10 | MM | 4 | 5487.09 |
| 11 | CHK | 5 | 2237.97 |
| 12 | CHK | 6 | 122.37 |
| 13 | CD | 6 | 10000.00 |
| 14 | CD | 7 | 5000.00 |
| 15 | CHK | 8 | 3487.19 |
| 16 | SAV | 8 | 387.99 |
| 17 | CHK | 9 | 125.67 |
| 18 | MM | 9 | 9345.55 |
| 19 | CD | 9 | 1500.00 |
| 20 | CHK | 10 | 23575.12 |
| 23 | CHK | 12 | 38552.05 |
+++++
21 rows in set (0.03 sec)
Подзапрос возвращает набор из четырех значений, а основной запрос
проверяет, соответствует ли значение столбца
product_cd
значениям,
возвращенным подзапросом.
Оператор not in
Иногда требуется проверить, присутствует ли определенное выраже
ние в наборе выражений, а иногда нужно удостовериться в его
отсут
ствии
. В таких ситуациях можно использовать оператор
not
in
(нет в):
mysql>
SELECT account_id, product_cd, cust_id, avail_balance
>
FROM account
>
WHERE product_cd NOT IN ('CHK','SAV','CD','MM');
+++++
| account_id | product_cd | cust_id | avail_balance |
+++++
| 21 | BUS | 10 | 0.00 |
| 22 | BUS | 11 | 9345.55 |
| 24 | SBL | 13 | 50000.00 |
+++++
3 rows in set (0.02 sec)
Этот запрос находит все счета,
не
являющиеся текущими, депозитны
ми, депозитными сертификатами или депозитными счетами денежно
го рынка.
Типы условий
Достарыңызбен бөлісу: |