Bases de Datos - Ayuda, sobre una consulta en SQL

 
Vista:

Ayuda, sobre una consulta en SQL

Publicado por Felipe (1 intervención) el 25/10/2008 22:37:41
Bueno, estamos viendo como realizar consultas sobre bases de datos con el Analizador de consultas de SQL.

Hay un ejercicio que cita:

"Mostrar los clientes que viven en la misma ciudad que el cliente ANTON"

La tabala contiene entre otros campos, uno llamado customerID donde aparece el ID del cliente, en este caso, es este campo donde aparece la clave 'ANTON' y otro campo que muestra la ciudad donde vive cada cliente.

Entonces, Debo realizar la consulta, primero que obtenga la ciudad donde el cliente con el CustomerID 'ANTON' vive, y despues buscar todas las coincidencias sobre esta ciudad, mostrando igualmente el ID del cliente que vive en esa misma ciudad.

Como podria realizar esto??? Gracias de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda, sobre una consulta en SQL

Publicado por Franklin Gamboa (188 intervenciones) el 28/10/2008 15:05:35
Hola,

Lo que debes hacer es una subconsulta en el where que te devuelva UNICAMENTE la cuidad en la que está anton, de la siguiente manera (como hubo campos que no especificaste entonces los nombre con el nombre que creo podría tener. igual con el nombre de la tabla)

Select customerName /*Nombre del cliente*/
from customers /*tabla cliente*/
where ciudad = (select ciudad /*campo ciudad*/
from customers
where customerID = 'ANTON' /*Valido que solo devuelva la cuidad en que está anton*/)

El subquery que esta en el where va a devolver únicamente el valor de la cuidad de anton, y el motor de base de datos reemplazará ese subquery por el valor que retorne antes de ejecutar la consulta SQL padre; POR ESO DEBES ESTAR 100 SEGURO QUE TE VA A DEVOLVER SOLO UN VALOR.

Las subconsultas se ejecutan antes de ejecutar la consulta padre (en algunos casos se ejecutan antes de compilar la consulta padre tambien.

Espero haberte ayudado.

Saludos,

Franklin Gamboa
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar