illohacker Posted February 5, 2014 Share Posted February 5, 2014 Hola a todos, llevo varios días haciendo una consulta pero no soy capaz de sacarla, a ver si alguien me puede echar una mano. quiero sacar el id del pedido, el nombre y apellido del cliente el codigo de seguimiento de correos (ps_correos_preregister). Lo que he intentado desde mis conocimientos es esto: SELECT p.id_order AS IDPEDIDO,pl.firstname AS NOMBRE,pl.surname AS APELLIDO,pm.code_envio AS seguimiento FROM ps_orders p LEFT JOIN ps_customer pl ON p.id_order=pl.id_order LEFT JOIN ps_correos_preregister pm ON p.id_order=pm.id_order; Link to comment Share on other sites More sharing options...
elenzel Posted February 5, 2014 Share Posted February 5, 2014 Hola, he estado revisando tu consulta y supongo que la tabla que tratas de consultar llamada "ps_correos_preregister" la habrás creado tú por tanto revisa que los campos en los que se basa el "on" de la clausula join existen y están relacionados ya que respecto al otro join y basado en mi version de prestashop la query debería ser como te adjunto, fijaté que igualo por el campo id_customer las talbas ps_customer y ps_orders. Respecto al apellido el campo de la tabla ps_customer que en tu consulta llamas "surname" se llama en "lastname" en mi instalación. Trata de ejectuar esta query y hacer el join con la tabla "ps_correos_preregister" Query: SELECT p.id_order AS IDPEDIDO , pl.firstname AS NOMBRE , pl.lastname AS APELLIDO-- ,pm.code_envio AS seguimiento FROM ps_orders p LEFT JOIN ps_customer pl ON p.id_customer=pl.id_customer -- LEFT JOIN ps_correos_preregister pm ON p.id_order=pm.id_order; (fijaté que he comentado el join a ps_correos_preregister) Suerte con tu query !! Link to comment Share on other sites More sharing options...
illohacker Posted February 6, 2014 Author Share Posted February 6, 2014 (edited) Hola, he estado revisando tu consulta y supongo que la tabla que tratas de consultar llamada "ps_correos_preregister" la habrás creado tú por tanto revisa que los campos en los que se basa el "on" de la clausula join existen y están relacionados ya que respecto al otro join y basado en mi version de prestashop la query debería ser como te adjunto, fijaté que igualo por el campo id_customer las talbas ps_customer y ps_orders. Respecto al apellido el campo de la tabla ps_customer que en tu consulta llamas "surname" se llama en "lastname" en mi instalación. Trata de ejectuar esta query y hacer el join con la tabla "ps_correos_preregister" Query: SELECT p.id_order AS IDPEDIDO , pl.firstname AS NOMBRE , pl.lastname AS APELLIDO -- ,pm.code_envio AS seguimiento FROM ps_orders p LEFT JOIN ps_customer pl ON p.id_customer=pl.id_customer -- LEFT JOIN ps_correos_preregister pm ON p.id_order=pm.id_order; (fijaté que he comentado el join a ps_correos_preregister) Suerte con tu query !! Me ha venido de fábula, te dejo como ha quedado por si alguien la necesita en un futuro. SELECT p.id_order AS IDPEDIDO , pl.firstname AS NOMBRE , pl.lastname AS APELLIDO ,p.date_upd AS FECHAENVIO,pm.code_envio AS SEGUIMIENTO FROM ps_orders p LEFT JOIN ps_customer pl ON p.id_customer=pl.id_customer LEFT JOIN ps_correos_preregister pm ON p.id_order=pm.order_id where pm.label_printed is not null ORDER BY p.id_order DESC; Es para sacar el manifiesto detallado de correos, los que trabajamos con dicha empresa lo necesitamos y esta ayuda mucho. lo que no se si se puede o no hacer es que a la hora de hacer la select yo decida de que fecha a que fecha hacerla, porque eso estaría estupendo. Edited February 6, 2014 by illohacker (see edit history) Link to comment Share on other sites More sharing options...
elenzel Posted February 6, 2014 Share Posted February 6, 2014 Hola, Me alegro que te haya ido bien :-) Si puedes hacer lo de las fechas, tendras que hacer un where statment con p_orders y elegir porque campo del pedido quieres filtrar.. si te fijas en ps_orders tienes varios: invoice_date, delivery_date, date_add o date_upd.. imagina que usas date_add, quie sería la fecha ne la que se hizo el pedido añadirías a tu consulta lo siguiente: where pm.label_printed is not null and date_add = '06-20-2014' Y te mostarïa los pedidos de hoy... del mismo modo puedes usar >, <, <=, >= o between para filtar por fechas como quieras. Conozco la estructura de tablas ya que desde mi empresa he estado colaborando en un conector automático para esta gente: http://www.prestashopconector.com/ y no me ha tocado mas cojones q empaparme la base ddatos de arriba a abajo... :-) Espero saques tus pedidos Link to comment Share on other sites More sharing options...
Recommended Posts