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

Al parecer solo para expertos :), traducir consulta de una version 4 a una 3

Estas en el tema de Al parecer solo para expertos :), traducir consulta de una version 4 a una 3 en el foro de Mysql en Foros del Web. Digo para expertos porque llevo todo el dia poninedo msg's en foros y sin respuesta alguna. Alguien me podria decir como hacer esto compatible con ...
  #1 (permalink)  
Antiguo 12/01/2007, 05:44
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
Al parecer solo para expertos :), traducir consulta de una version 4 a una 3

Digo para expertos porque llevo todo el dia poninedo msg's en foros y sin respuesta alguna. Alguien me podria decir como hacer esto compatible con la version 3 de MySql?

$query_user = "SELECT * FROM login_users WHERE id IN (SELECT o.user_id from orders o,facturas f where factura_id='".$order."' AND o.orders_id=f.pedido)";

Es que no tengo ni idea de Sql.

Gracias.
  #2 (permalink)  
Antiguo 12/01/2007, 06:05
Avatar de haron  
Fecha de Ingreso: febrero-2004
Ubicación: Cádiz (refinitivo)
Mensajes: 632
Antigüedad: 20 años, 2 meses
Puntos: 3
Re: Al parecer solo para expertos :), traducir consulta de una version 4 a una 3

por aqui van los tiros:
Código:
select lu.*
from login_users lu
inner join order o
  on o.user_id = lu.id
inner join facturas f
  on f.pedido = o.orders_id
where f.factura_id = '".$order."'
group by lu.id

Última edición por haron; 12/01/2007 a las 06:05 Razón: escribia borracho
  #3 (permalink)  
Antiguo 12/01/2007, 06:17
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Al parecer solo para expertos :), traducir consulta de una version 4 a una 3

Muchas gracias por ti tiempo amigo. Me da este error

#1064 - You have an error in your SQL syntax near 'order o on o . user_id = lu . id inner join facturas f on f . pedido = o . or' at line 1
  #4 (permalink)  
Antiguo 12/01/2007, 06:49
 
Fecha de Ingreso: enero-2002
Mensajes: 16
Antigüedad: 22 años, 3 meses
Puntos: 0
Re: Al parecer solo para expertos :), traducir consulta de una version 4 a una 3

Los inner join me parece que no funcionan hasta la version 4 de mysql.

y si pruebas algo tan sencillo como:

$query_user = "SELECT * FROM login_users WHERE id IN (SELECT o.user_id as id from orders o,facturas f where factura_id='".$order."' AND o.orders_id=f.pedido)";

Como ves lo unico que he agregado es un alias id para o.user_id.

A ver si asi tira.
  #5 (permalink)  
Antiguo 12/01/2007, 08:01
Avatar de BrujoNic
Super Moderador
 
Fecha de Ingreso: noviembre-2001
Ubicación: Costa Rica/Nicaragua
Mensajes: 16.935
Antigüedad: 22 años, 5 meses
Puntos: 655
Re: Al parecer solo para expertos :), traducir consulta de una version 4 a una 3

Por favor realiza tus consultas aquí, utilizando VALORES REALES. Lo que pones, es una consulta INCONCLUSA ya que puede que el error sea propiamente en la programación.

Si al hacer tus pruebas con datos reales y no con variables, te sigue dando problemas, ahí si se puede decir que es problema en el SELECT, pero MySQL NO comprende que es $order.

Lee la Función de la sección de Base de Datos y replantea tu pregunta.

Insisto en lo mismo, porque NO deseo que las personas confundan lo que es un problema de BD y uno de programación.
__________________
La tecnología está para ayudarnos. No comprendo el porqué con esa ayuda, la gente escribe TAN MAL.
NO PERDAMOS NUESTRO LINDO IDIOMA ESPAÑOL
  #6 (permalink)  
Antiguo 17/01/2007, 02:49
 
Fecha de Ingreso: enero-2007
Mensajes: 43
Antigüedad: 17 años, 3 meses
Puntos: 0
Re: Al parecer solo para expertos :), traducir consulta de una version 4 a una 3

Varias Cosas.

Gracias Haron todo funcina perfecto. Solo habia un error ortografico en tu respuesta (la tabla se llama orders no order). Muchas gracias por todo eres un monstruo.
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 02:58.