Gt; FROM account. _> WHERE account_id = (SELECT MAX(account_id) FROM account);

_> WHERE account_id = (SELECT MAX(account_id) FROM account);

+____________+____________+_________+_______________+


Типы подзапросов
| account_id | product_cd | cust_id | avail_balance |
+____________+____________+_________+_______________+
| | SBL | 13 | 50000.00 |

+____________+____________+_________+_______________+ 1 row in set (0.65 sec)

В этом примере подзапрос возвращает максимальное значение столбца account_id таблицы account. Затем содержащее выражение возвращает данные по этому счету. Если возникают какие_нибудь вопросы по по_ воду того, что делает подзапрос, можно выполнить его отдельно (без скобок) и посмотреть, что он возвращает. Вот подзапрос из предыду_ щего примера:

mysql>SELECT MAX(account_id) FROM account;

+_________________+ | MAX(account_id) | +_________________+

| 24 |

+_________________+

1 row in set (0.00 sec)

Итак, подзапрос возвращает одну строку и один столбец. Это позволя_ ет использовать Gt; FROM account. _> WHERE account_id = (SELECT MAX(account_id) FROM account); его как одно из выражений в условии равенства (если бы подзапрос возвращал две или более строк, он мог бы сравниваться с чем_то, но не мог бы быть равным чему_то; более подробно об этом позже). В этом случае можно взять значение, возвращаемое подзапро_ сом, и подставить его в правую часть условия фильтрации в основном запросе:

mysql> SELECT account_id, product_cd, cust_id, avail_balance
_> FROM account a
_> WHERE account_id = 24;
+____________+____________+_________+_______________+
| account_id | product_cd | cust_id | avail_balance |
+____________+____________+_________+_______________+
| | SBL | 13 | 50000.00 |

+____________+____________+_________+_______________+ 1 row in set (0.02 sec)

Здесь удобно использовать подзапрос, потому что он позволяет извле_ кать информацию о счете с наибольшим Gt; FROM account. _> WHERE account_id = (SELECT MAX(account_id) FROM account); порядковым номером одним запросом. В противном случае пришлось бы с помощью одного запроса получать максимальный account_id и затем писать второй запрос для выбора необходимых данных из таблицы account. Как вы увидите, под_ запросы полезны и во многих других ситуациях и могут стать одним из самых мощных инструментов в вашем наборе SQL_инструментов.


documentaxzfxuf.html
documentaxzgfen.html
documentaxzgmov.html
documentaxzgtzd.html
documentaxzhbjl.html
Документ Gt; FROM account. _> WHERE account_id = (SELECT MAX(account_id) FROM account);