entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Resolución de ambigüedad al usar términos homónimos en SQL

Dadas las siguientes tablas:

vendedor (id INTEGER, nombre VARCHAR(100), edad INTEGER, sueldo DECIMAL(6,2))
cliente (id INTEGER, nombre VARCHAR(100), giro VARCHAR(50), ciudad VARCHAR(50))
orden (folio INTEGER, fecha DATE, monto DECIMAL(6,2), idvendedor INTEGER, idcliente INTEGER)

El siguiente query no se ejectua, ¿qué está mal en el?

select id,fecha,nombre,monto from vendedor v inner join orden o on v.id=o.idvendedor inner join cliente c on o.idcliente=c.id where monto >= -5

0voto

OscarCanfranc comentado

¿Te sale algún error o, simplemente, te devuelve 0 filas?

De todas formas, en la parte del select especifica a qué id y nombre te refieres.

1 Respuesta

2votos

wchiquito Puntos180

El problema debe ser la ambigüedad de las columnas, el motor no sabe a cual te refieres.

Al ejecutar:

select id, fecha, nombre, monto
from vendedor v
  inner join orden o on v.id = o.idvendedor
  inner join cliente c on o.idcliente = c.id
where monto >= -5;

Seguramente da un error como:

Column 'id' in field list is ambiguous:
select id, fecha, nombre, monto
from vendedor v
  inner join orden o on v.id = o.idvendedor
  inner join cliente c on o.idcliente = c.id
where monto >= -5

Trata (ajusta lo que sea necesario):

select v.id, o.fecha, v.nombre, o.monto
from vendedor v
  inner join orden o on v.id = o.idvendedor
  inner join cliente c on o.idcliente = c.id
where o.monto >= -5;

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta