Sub-query


Sub-query

With SQL, we can nest a query within a query. A sub-query is a query that is in a WHERE or HAVING clause. We will talk about the HAVING clause later. A sub-query is always enclosed in parenthesis, but it has the familiar form of a SELECT statement.
En el lenguaje SQL es posible incluir una consulta dentro de una consulta. Una sub-consulta es una consulta que forma parte de un comando WHERE o HAVING de otra consulta. El comando HAVING será discutido posteriormente. La consulta que está dentro de otra consulta se coloca entre paréntesis manteniendo el formato estandar de SELECT.

Problem 1
city_bank > The sub-query shown below returns a set of rows representing the account_id's in the account table for the branch with branch_id of 100. This is nested in an outer query which compares the account_id for each client_account row against this set of account_ids to return the respective client_ids.
La sub-consulta mostrada contiene una consulta de la tabla cuenta la cual regresa los números de identificación de cuenta en la sucursal con número de identificación 100. La consulta externa recibe estos números de identificación de cuenta y los compara con los ID's de la tabla cliente_cuenta para regresar los números de identificación de los respectivos cliente.

subquery

Tip
Some differences exist between an ordinary query and a subquery, however:
  • The sub-query must produce a single column of data as its query results. A sub-query always has a single item in its SELECT clause.
  • No ORDER BY is used un a sub-query.
  • A sub-query cannot be the union of several single SELECT statements. We will talk about unions later.

Existen algunas diferencias entre una consulta ordinaria y una sub-consulta, las cuales son listadas a continuación:
  • La sub-consulta debe regresar datos de una sola columna, así la sub-consulta tiene sólo un elemento en el comando SELECT.
  • El comando ORDER BY no puede ser usado en una sub-consulta.
  • Una sub-consulta no puede tener la unión de varios comandos SELECT. Las uniones serán discutidas posteriormente.

Problem 2
city_bank > Create a SELECT statement without using sub-queries to produce the result of the last SQL query (use JOINS instead.) Write an SQL statement to display the client_id of those clients who have an account in the branch with branch_id of 100.
Escriba un comando SQL sin usar sub-consultas para producir el resultado de la consulta anterior. Escriba un comando de SQL para mostrar la client_id de esos clientes que tienen una cuenta en la sucursal con branch_id de 100.

cb_branch100

Problem 3
city_bank > Create a SELECT statement without using sub-queries to get the client name of all the clients in the Bellavista branch as shown.
Escriba un comando SQL sin usar sub-consultas para listar el nombre de los clientes en la sucursal Bellavista como se muestra.

cb_bellavista

Problem 4
city_bank > Create a SELECT statement using sub-queries to get the client name of all clients in the Centro branch as shown (You cannot include the AND operator in your result.)

Hint:
  1. Find the branch_id of the Centro branch
  2. Find the account_id s of all the accounts in the respective branch_id
  3. Find the client_id s of these account_id s
  4. Find the name of the clients with these client_id s

Escriba un comando SQL usando sub-consultas para listar el nombre de los clientes en la sucursal Centro como se muestra, no use el operador AND en su consulta.

Sugerencia:
  1. Encuentre el branch_id de la sucursal Centro
  2. Encuentre las account_id s de las respectivas cuentas en la branch_id
  3. Encuentre las client_id s de estas account_id s
  4. Encuentre el nombre de los clientes con estas client_id s

cb_subcentro

city_bank_subcentro

Problem 5
city_bank > Create a SELECT statement without sub-queries to list the name and balances of those clients in the Centro branch as shown.
Escriba un comando SQL sin usar sub-consultas para listar el nombre y balance de los clientes en la sucursal Centro como se muestra.

cb_balance

Problem 6
city_bank > Create a SELECT statement to retrieve details of customers without an account (use sub-queries). Hint: first create a SELECT statement to get the client_id of those clients with an account.
Escriba un comando SQL para listar la información de los clientes que no tienen cuenta (use sub-consultas). Sugerencia: primero cree un comando SELECT para obtener el client_id de esos clientes con cuenta.

cb_noacc

Problem 7
motorola > Create a SELECT statement using sub-queries to list the employees in the Design department (You cannot include the AND operator in your result.) Hint: first, write a query to find the dept_id of the design department.
Escriba un comando SQL usando sub-consultas para listar los empleados en el departamento de Diseño (No puede usar el operador AND en su resultado.) Sugerencia: primero escriba primero una consulta para encontrar el dept_id del departamento de diseño.

mot_design

Problem 8
motorola > Create a SELECT statement using sub-queries to list the department name of the employees in area code 515 (You cannot include the AND operator in your result.) Hint: first, write a query to find the dept_id of the respective employees.
Escriba un comando SQL usando sub-consultas para listar los departamentos que tienen empleados con código de área 515 (No puede usar el operador AND en su resultado)

mot_515

Problem 9
motorola > Create a SELECT statement using sub-queries to list the skills of the employees in the Accounting department. You cannot include the AND operator in your result.
Escriba un comando SQL para listar las habilidades de los empleados en el departamento de Contabilidad. (No puede usar el operador AND en su resultado)

mot_accounting

Problem 10
city_bank > Create a SELECT statement using sub-queries to list clients with a Savings account. You cannot include the AND operator in your result.
Escriba un comando SQL para listar los clientes que tienen cuentas de ahorros. (No puede usar el operador AND en su resultado).

cb_sav

Problem 11
city_bank > Create a SELECT statement using sub-queries to list the balance of those accounts that are in the branch with a manager id of 9823. You cannot include the AND operator in your result.
Escriba un comando SQL para listar el balance de aquellas cuentas en la sucursal donde el número de identificación del gerente es 9823. (No puede usar el operador AND en su resultado)

cb_9823

Tip
Observe that it is only possible to extract data from the table in the main query (the most external one); observe also that it is not possible to extract data from the tables used in the internal SELECT of a subquery. This is a restriction that Joins do not have.
Observe que solo es posible extraer datos de la tabla en la consulta principal (la más externa); también observe que no es posible extraer datos de las tablas usadas en los SELECT internos de una sub-consula. Esta es una restricción que no existe en las Joins.

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home