Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

Sentencia SQL sin inner join

Estas en el tema de Sentencia SQL sin inner join en el foro de Bases de Datos General en Foros del Web. Hola, mi problema es que estoy haciendo una consulta a una base de datos en la que el driver ODBC no tiene las sentencias INNER ...
  #1 (permalink)  
Antiguo 21/10/2003, 08:24
 
Fecha de Ingreso: junio-2003
Mensajes: 24
Antigüedad: 20 años, 10 meses
Puntos: 0
Sentencia SQL sin inner join

Hola,

mi problema es que estoy haciendo una consulta a una base de datos en la que el driver ODBC no tiene las sentencias INNER JOIN ni LEFT JOIN ni RIGHT JOIN, y trato de enlazar la tabla el campo codigo vendedor de la tabla cabecera de pedido con el campo codigo vendedor de la tabla Vendedor para poder obtener el nombre del vendedor de esta ultima tabla. La sentencia es simplemente:

SELECT CabPedido.NumPed,CabPedido.CodVendedor, Vendedor.Nombre FROM CabPedido,Vendedor
WHERE CabPedido.CodVendedor=Vendedor.CodVendedor

El problema es que cuando el campo CabPedido.CodVendedor esta vacio, esta select no me devuelve nada ya que en la tabla Vendedor no hay ningun registro que este vacio, y yo lo que quiero es que me devuelva los datos que le pido pero con el campo Vendedor.Nombre vacio.

Esto se hace facilmente usando LEFT JOIN por ejemplo, pero como he dicho no existe esta sentencia porque me parece que este driver usa el estandar ansi SQL-89 donde todavia no se habian incluido estas sentencias.

A ver si alguien me puede echar un cable

Gracias
  #2 (permalink)  
Antiguo 21/10/2003, 09:08
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
No hay manera de que no uses ODBC?

Usar OLEDB por ejemplo?
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #3 (permalink)  
Antiguo 21/10/2003, 10:52
 
Fecha de Ingreso: junio-2003
Mensajes: 24
Antigüedad: 20 años, 10 meses
Puntos: 0
Que yo sepa, la unica manera por la que puedo acceder a los datos del programa es a traves del driver odbc.
  #4 (permalink)  
Antiguo 21/10/2003, 17:20
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Que software/lenguaje, servidor/base de datos, sistema operativo usas?
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #5 (permalink)  
Antiguo 22/10/2003, 05:14
Avatar de jercer  
Fecha de Ingreso: octubre-2003
Mensajes: 373
Antigüedad: 20 años, 6 meses
Puntos: 13
Añade esto al final:

OR CabPedido.CodVendedor = ''

A ver que tal
  #6 (permalink)  
Antiguo 22/10/2003, 06:20
Avatar de Vice  
Fecha de Ingreso: agosto-2003
Mensajes: 613
Antigüedad: 20 años, 9 meses
Puntos: 2
Si no tienes la posibilidad de usar left join, prueba con el outer. Es decir:
Código PHP:
SELECT CabPedido.NumPed,CabPedido.CodVendedorVendedor.Nombre
FROM CabPedido
outer Vendedor
WHERE CabPedido
.CodVendedor=Vendedor.CodVendedor 
Hay bastantes servidores que aceptan esta forma de hacer el join de tablas paraindicar que se obtengan todas las filas de la primera tabla independientemente de que tengan cruce con la segunda.
Un saludo.
__________________
Estoy contagiado de Generación-I

Última edición por Vice; 22/10/2003 a las 06:28
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:43.