Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Gt; SUM(avail_balance) tot_deposits _> FROM account

Несвязанные подзапросы | Gt; FROM employee | Оператор all | Оператор any | Подзапросы, возвращающие несколько столбцов | Gt; FROM customer c | Оператор exists | Манипулирование данными с помощью связанных подзапросов | Использование подзапросов | Формирование таблиц |


Читайте также:
  1. Answer the following questions using your own words but taking into account the
  2. Aufrisszone ~~> Ort wo man mit hoher WahrscheinlichkeiteinenFreund / eine Freundin kennen lernen kann
  3. Burnen ~~> attraktiv. bewundernswert,cool
  4. Dönern~~> eine Blähung haben
  5. Faker ~~> Simulant
  6. FROM account
  7. Gesichtselfmeter ~~> unattraktives Gesicht

_> GROUP BY product_cd, open_branch_id, open_emp_id;

 

+____________+___________+________+______________+ | product_cd | branch_id | emp_id | tot_deposits | +____________+___________+________+______________+

 

| BUS |   |   | 9345.55 |
| BUS |   |   | 0.00 |
| CD |   |   | 11500.00 |
| CD |   |   | 8000.00 |
| CHK |   |   | 782.16 |
| CHK |   |   | 3315.77 |
| CHK |   |   | 1057.75 |
| CHK |   |   | 67852.33 |
| MM |   |   | 14832.64 |
| MM |   |   | 2212.50 |
| SAV |   |   | 767.77 |
| SAV |   |   | 700.00 |
| SAV |   |   | 387.99 |
| SBL |   |   | 50000.00 |

 

+____________+___________+________+______________+ 14 rows in set (0.01 sec)

 

Это – сердце запроса; все остальные таблицы нужны только для того, чтобы обеспечить осмысленные строки для шапки таблицы вместо имен столбцов внешних ключей product_cd, open_branch_id и open_emp_id. Сле_ дующий запрос включает запрос к таблице account в качестве подзапроса и соединяет результирующую таблицу с тремя остальными таблицами:

 

mysql> SELECT p.name product, b.name branch,
_> CONCAT(e.fname, ' ', e.lname) name,
_> account_groups.tot_deposits
_> FROM
_> (SELECT product_cd, open_branch_id branch_id,
_> open_emp_id emp_id,
_> SUM(avail_balance) tot_deposits
_> FROM account
_> GROUP BY product_cd, open_branch_id, open_emp_id) account_groups
_> INNER JOIN employee e ON e.emp_id = account_groups.emp_id
_> INNER JOIN branch b ON b.branch_id = account_groups.branch_id

 

Использование подзапросов        
   
_> INNER JOIN product p ON p.product_cd = account_groups.product_cd  
_> WHERE p.product_type_cd = 'ACCOUNT';      
+________________________+_______________+_________________+______________+
| product | branch | name | tot_deposits |
+________________________+_______________+_________________+______________+
| certificate of deposit | Headquarters | Michael Smith | 11500.00 |
| checking account | Headquarters | Michael Smith | 782.16 |
| money market account | Headquarters | Michael Smith | 14832.64 |
| savings account | Headquarters | Michael Smith | 767.77 |
| certificate of deposit | Woburn Branch | Paula Roberts | 8000.00 |
| checking account | Woburn Branch | Paula Roberts | 3315.77 |
| savings account | Woburn Branch | Paula Roberts | 700.00 |
| checking account | Quincy Branch | John Blake | 1057.75 |
| money market account | Quincy Branch | John Blake | 2212.50 |
| checking account | So. NH Branch | Theresa Markham | 67852.33 |
| savings account | So. NH Branch | Theresa Markham | 387.99 |

 

+________________________+_______________+_________________+______________+ 11 rows in set (0.00 sec)

 

Я понимаю, что «на вкус и цвет товарищей нет», но этот вариант за_ проса мне нравится намного больше, чем большая плоская версия. И он может быстрее выполняться, потому что группировка проведена по небольшим столбцам внешних ключей (product_cd, open_branch_id, open_emp_id), а не по столбцам, предположительно содержащим длин_ ные строки (branch.name, product.name, employee.fname, employee.lname).

 


Дата добавления: 2015-08-17; просмотров: 77 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Подзапросы, ориентированные на задачи| Подзапросы в условиях фильтрации

mybiblioteka.su - 2015-2024 год. (0.006 сек.)