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

Ayuda con Select con Join

Estas en el tema de Ayuda con Select con Join en el foro de Mysql en Foros del Web. Buwenas a todos. Necesito realizar una select de este estilo pero con 3 tablas más, las 3 tablas dvd, productos_sin_dvd y novedades tienen mismos campos ...
  #1 (permalink)  
Antiguo 30/12/2010, 11:17
 
Fecha de Ingreso: mayo-2008
Mensajes: 228
Antigüedad: 11 años, 10 meses
Puntos: 2
Ayuda con Select con Join

Buwenas a todos.

Necesito realizar una select de este estilo pero con 3 tablas más, las 3 tablas dvd, productos_sin_dvd y novedades tienen mismos campos y la ecomm_temp tse relacion via product_code

$query = 'SELECT
t.product_code, qty,
nombre, descripcion_castellano, precio
FROM
ecomm_temp_cart t JOIN novedades p ON
t.product_code = p.codigo
WHERE
session = "' . $session . '"
ORDER BY
t.product_code ASC';

Última edición por arts; 30/12/2010 a las 11:33
  #2 (permalink)  
Antiguo 30/12/2010, 11:43
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 13 años, 4 meses
Puntos: 8
Respuesta: Ayuda con Select con Join

Para lograr seria bueno conocer las estructuras de esas tablas.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....
  #3 (permalink)  
Antiguo 30/12/2010, 12:12
 
Fecha de Ingreso: mayo-2008
Mensajes: 228
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Ayuda con Select con Join

Tengo ecomm_temp que es una tabla temporal con product_code que tendrian los campos de codigo de las tablas dvd, novedades y productos_sin_dvd.

Simplemente necesito sacar con join la union de estas 3,4tablas con un where donde where sea el campo sesion de ecomm_temp.
  #4 (permalink)  
Antiguo 30/12/2010, 12:56
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.323
Antigüedad: 12 años, 4 meses
Puntos: 2655
Respuesta: Ayuda con Select con Join

No es esa "descripción" lo que pregunta Snaft_J1.
Cuando en Base de Datos preguntamos por la estructura de las tablas, nos referimos al CREATE TABLE que las genera, porque de allí podemos inferir las relaciones declaradas como foreign key, las cuales a su vez se usan para definir los JOINs necesarios.
SIn esa información no es posible diseñar un JOIN decente. Solamente estaríamos especulando.

Postea la estructura de las tablas o al menos el DER que describa la estructura relacional.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 30/12/2010, 18:13
 
Fecha de Ingreso: mayo-2008
Mensajes: 228
Antigüedad: 11 años, 10 meses
Puntos: 2
Respuesta: Ayuda con Select con Join

CREATE DATABASE IF NOT EXISTS comercio;
USE comercio;

DROP TABLE IF EXISTS `ecomm_customers`;
CREATE TABLE `ecomm_customers` (
`customer_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`first_name` varchar(20) NOT NULL,
`last_name` varchar(20) NOT NULL,
`address_1` varchar(50) NOT NULL,
`address_2` varchar(50) DEFAULT NULL,
`city` varchar(20) NOT NULL,
`state` char(2) NOT NULL,
`zip_code` char(5) NOT NULL,
`phone` char(12) NOT NULL,
`email` varchar(100) NOT NULL,
PRIMARY KEY (`customer_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=latin1;


DROP TABLE IF EXISTS `ecomm_order_details`;
CREATE TABLE `ecomm_order_details` (
`order_id` int(10) unsigned NOT NULL,
`order_qty` int(10) unsigned NOT NULL,
`product_code` char(5) NOT NULL,
KEY `order_id` (`order_id`),
KEY `product_code` (`product_code`)
foreign key (order_id) references ecomm_orders (order_id),
foreign key (product_code) references productos_sin_dvd (codigo)

) ENGINE=MyISAM DEFAULT CHARSET=latin1;


DROP TABLE IF EXISTS `ecomm_orders`;
CREATE TABLE `ecomm_orders` (
`order_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`order_date` date NOT NULL,
`customer_id` int(10) unsigned NOT NULL,
`cost_subtotal` decimal(7,2) NOT NULL,
`cost_shipping` decimal(6,2) DEFAULT NULL,
`cost_tax` decimal(6,2) DEFAULT NULL,
`cost_total` decimal(7,2) NOT NULL,
`shipping_first_name` varchar(20) NOT NULL,
`shipping_last_name` varchar(20) NOT NULL,
`shipping_address_1` varchar(50) NOT NULL,
`shipping_address_2` varchar(50) DEFAULT NULL,
`shipping_city` varchar(20) NOT NULL,
`shipping_state` char(2) NOT NULL,
`shipping_zip_code` char(5) NOT NULL,
`shipping_phone` char(12) NOT NULL,
`shipping_email` varchar(100) NOT NULL,
PRIMARY KEY (`order_id`),
KEY `customer_id` (`customer_id`)
foreign key (customer_id) references ecomm_customers(customer_id)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;

--
-- Dumping data for table `ecomm_orders`
--

DROP TABLE IF EXISTS `ecomm_temp_cart`;
CREATE TABLE `ecomm_temp_cart` (
`session` char(50) NOT NULL,
`product_code` char(5) NOT NULL,
`qty` int(10) unsigned NOT NULL,
PRIMARY KEY (`session`,`product_code`),
KEY `product_code` (`product_code`)
foreign key (product_code) references productos_sin_dvd(product_code),
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Productossin_dvd, novedades y dvd tienen los mismos campos pero son tablas independientes.

CREATE TABLE `productos_sin_dvd` (
`codigo` char(5) NOT NULL,
`nombre` varchar(100) NOT NULL,
`descripcion_castellano` mediumtext,
`precio` decimal(6,2) NOT NULL,
PRIMARY KEY (`codigo`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

El problema creo que esta en las tablas productos_sin_dvd, dvd y novedades que las añadi despues de haber teniedo simplemente productos_sin_dvd pero en cuanto meti en tablas diferentes novedades y dvd la cosa se empezo a complicar, tanto que incluso para mostrar productos ya eran 3 tablas y tenia que ir haciendo select tal from taltabla union distinct (select tal from novedades) union distinct sleect tal from dvd haciendo todo mas complicado.
  #6 (permalink)  
Antiguo 01/01/2011, 08:45
Avatar de Snaft_J1  
Fecha de Ingreso: diciembre-2006
Mensajes: 285
Antigüedad: 13 años, 4 meses
Puntos: 8
Respuesta: Ayuda con Select con Join

bien, ahora contamos con una estructura, no se ve compleja, ahora, exactamente que es lo que necesitas extraer de ella?

con esto podria darte una posible consulta mas acertada.


saludos y que pena por la demora pero estábamos de fiestas jejeje.
__________________
-= El conocimiento y el saber te hacen un ser libre =-
Ando en busca de conocimiento....

Etiquetas: join, select
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:01.