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

consultar tablas con LEFT JOIN

Estas en el tema de consultar tablas con LEFT JOIN en el foro de Mysql en Foros del Web. Hola a todos, y a ver si teneis alguna solución con mi problema ya que no saco el porque no me funciona. tengo esta consulta ...
  #1 (permalink)  
Antiguo 17/09/2007, 13:20
 
Fecha de Ingreso: octubre-2006
Mensajes: 11
Antigüedad: 17 años, 5 meses
Puntos: 0
consultar tablas con LEFT JOIN

Hola a todos, y a ver si teneis alguna solución con mi problema ya que no saco el porque no me funciona.

tengo esta consulta para una BBDD MySQl:
Código PHP:
SELECT
  
*
FROM
  articulo
LEFT JOIN
  articulo
,categoria,marca,modelo,tipo
ON
  id_art          
articulo.id_art
  tipo             
tipo_es
  categoria    
categoria_es
  modelo       
modelo_es
  marca         
marca_es
  precio         
precio
  descripcion_es  
descripcion_es
  descripcion_en  
descripcion_en
  nombreimagen1   
nombreimagen1 
LA BASE DE DATOS ES ESTA:
Código PHP:
/*
SQLyog Community Edition- MySQL GUI v5.22a
Host - 4.0.27-log : Database - nombrebasedatos
*********************************************************************
Server version : 4.0.27-log
*/


create database if not exists `basedatos`;

USE `
basedatos`;

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;

/*Table structure for table `articulo` */

DROP TABLE IF EXISTS `articulo`;

CREATE TABLE `articulo` (
  `
id_artint(6NOT NULL default '0',
  `
tipochar(2NOT NULL default '0',
  `
catchar(2NOT NULL default '0',
  `
modelchar(2NOT NULL default '0',
  `
marcachar(2NOT NULL default '0',
  `
precioint(7) default NULL,
  `
descripcion_estext NOT NULL,
  `
descripcion_entext NOT NULL,
  `
nombreimagen1varchar(50NOT NULL default '',
  `
fechadate NOT NULL default '0000-00-00',
  `
ultimamodificaciontimestamp(14NOT NULL,
  
PRIMARY KEY  (`id_art`),
  
UNIQUE KEY `nombreimagen1` (`nombreimagen1`),
  
FULLTEXT KEY `buscar` (`descripcion_es`,`descripcion_en`)
TYPE=MyISAM;

/*Data for the table `articulo` */

insert  into `articulo`(`id_art`,`tipo`,`cat`,`model`,`marca`,`precio`,`descripcion_es`,`descripcion_en`,`nombreimagen1`,`fecha`,`ultimamodificacion`) values (4,'1','1','2','2',5455,'Barco estupendo en el que se pu\r\n','descripcion en ingles','nombreimg.jpg','0000-00-00',20070917130817),(5,'1','2','1','1',232,'un poco mas pequeño','en ingles','otra.jpg','0000-00-00',20070917131212);

/*Table structure for table `categoria` */

DROP TABLE IF EXISTS `categoria`;

CREATE TABLE `categoria` (
  `
id_catint(2unsigned NOT NULL auto_increment,
  `
categoria_esvarchar(50NOT NULL default '',
  `
categoria_envarchar(50NOT NULL default '',
  `
des_catvarchar(255) default NULL,
  
PRIMARY KEY  (`id_cat`,`categoria_es`,`categoria_en`),
  
UNIQUE KEY `id_cat` (`id_cat`)
TYPE=MyISAM;

/*Data for the table `categoria` */

insert  into `categoria`(`id_cat`,`categoria_es`,`categoria_en`,`des_cat`) values (1,'Nuevo','New','Artículos nuevos'),(2,'Usado','Used','Artículo usado');

/*Table structure for table `marca` */

DROP TABLE IF EXISTS `marca`;

CREATE TABLE `marca` (
  `
id_marcaint(3unsigned NOT NULL auto_increment,
  `
marca_esvarchar(50) default NULL,
  
PRIMARY KEY  (`id_marca`)
TYPE=MyISAM;

/*Data for the table `marca` */

insert  into `marca`(`id_marca`,`marca_es`) values (1,'Honda'),(2,'Yamaha'),(3,'Seadoo');

/*Table structure for table `modelo` */

DROP TABLE IF EXISTS `modelo`;

CREATE TABLE `modelo` (
  `
id_modelint(2unsigned NOT NULL auto_increment,
  `
model_tipoint(2) default NULL,
  `
modelo_esvarchar(50NOT NULL default '',
  `
modelo_envarchar(50NOT NULL default '',
  `
des_modelovarchar(255) default NULL,
  
PRIMARY KEY  (`id_model`)
TYPE=MyISAM;

/*Data for the table `modelo` */

insert  into `modelo`(`id_model`,`model_tipo`,`modelo_es`,`modelo_en`,`des_modelo`) values (1,1,'Eslora 3-6m','Slora 3-6m',NULL),(2,1,'Eslora 7-10 m','Slora 7-10m',NULL),(3,1,'Eslora 10-20m','Slora 10-20m',NULL),(4,1,'Eslora +20m','Slora +20m',NULL),(5,2,'Motor 4t/Gasolina','4t/Gasolina Engine',NULL),(6,2,'Motor 4t/Diesel','4t/Diesel Engine',NULL),(7,2,'Motor 2t/Gasolina','2t/Gasolina Engine',NULL),(8,3,'Monoplaza','Monoplaza',NULL),(9,3,'Biplaza','Biplaza',NULL);

/*Table structure for table `tipo` */

DROP TABLE IF EXISTS `tipo`;

CREATE TABLE `tipo` (
  `
id_tipoint(2unsigned NOT NULL auto_increment,
  `
tipo_esvarchar(50NOT NULL default '',
  `
tipo_envarchar(50NOT NULL default '',
  `
activadoenum('SI','NO'NOT NULL default 'SI',
  `
des_tipovarchar(255) default NULL,
  
PRIMARY KEY  (`id_tipo`),
  
UNIQUE KEY `tipo_es` (`tipo_es`,`tipo_en`)
TYPE=MyISAM COMMENT='Tipos de inmueble';

/*Data for the table `tipo` */

insert  into `tipo`(`id_tipo`,`tipo_es`,`tipo_en`,`activado`,`des_tipo`) values (1,'BARCOS DE VELA','BOATS DE VELA','SI',NULL),(2,'BARCOS DE MOTOR','BOATS DE MOTOR','SI',NULL),(3,'MOTOS DE AGUA','JETSKY','SI',NULL);

/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */
Lo que pretendo es coger los datos que faltan de las otras tablas ya que en la tabla artículos tengo hechas referencias (normalización).

No encuentro el problema por ningún sitio así que agradecería un poco de ayuda.
Muchas gracias
  #2 (permalink)  
Antiguo 17/09/2007, 14:04
Avatar de ferbux  
Fecha de Ingreso: mayo-2007
Ubicación: por ahí intentado ayudar
Mensajes: 823
Antigüedad: 16 años, 11 meses
Puntos: 6
Re: consultar tablas con LEFT JOIN

Hola, puedes explicar un poco mas claro ke te aparece cuando ejecutas esto?
__________________
"Eres grande por que caminas entre gigantes"
  #3 (permalink)  
Antiguo 17/09/2007, 14:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: consultar tablas con LEFT JOIN

Tema trasladado a bases de datos.

Porfavor publica en los foros correctos.
  #4 (permalink)  
Antiguo 17/09/2007, 16:09
 
Fecha de Ingreso: octubre-2006
Mensajes: 11
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: consultar tablas con LEFT JOIN

HOLA DE NUEVO
LO QUE ME PONE ES ESTO:

Error Code : 1066
Not unique table/alias: 'articulo'
  #5 (permalink)  
Antiguo 17/09/2007, 16:18
Avatar de edwinandlozano  
Fecha de Ingreso: octubre-2003
Mensajes: 272
Antigüedad: 20 años, 6 meses
Puntos: 0
Re: consultar tablas con LEFT JOIN

primero... que error te genera?? es de sql?? o no te trae los datos que deseas...???

si es por la sentencia un ejemplo tomado del manual:
Cita:
SELECT * FROM t1 LEFT JOIN (t2, t3, t4)
ON (t2.a=t1.a AND t3.b=t1.b AND t4.c=t1.c)
puedes mirar mas en http://dev.mysql.com/doc/refman/5.0/en/join.html

EDITANDO:

dado de que ahora si colocas el error que te genera pos es mas claro.. por favor maneja alias en las tablas:
Cita:
FROM
articulo a
LEFT JOIN
articulo b,categoria c,marca d,modelo e, tipo f
ON
a.id_art = b.id_art
aunque me parece raro que hagas left joint con la misma tabla hacia el MISMO CAMPO me parece que es algo que esta erroneo (dado que en el sql que colocas no veo por ninguna parte la referencia de la llave foranea a la misma tabla y si es asi se hace referencia a otro campo de la tabla) aunque mirando en esta pagina tiene algo parecido: http://www.mysql-hispano.org/page.php?id=31&pag=9

Última edición por edwinandlozano; 17/09/2007 a las 16:32
  #6 (permalink)  
Antiguo 22/09/2007, 02:23
 
Fecha de Ingreso: octubre-2006
Mensajes: 11
Antigüedad: 17 años, 5 meses
Puntos: 0
Re: consultar tablas con LEFT JOIN

Hola Edwinandlozano muchas gracias por tus indicaciones, al final lo he solucionado con otra consulta, que es la que buscaba.
La consulta es esta:

Código PHP:
SELECT articulo.*, categoria_esmarca_esmodelo_estipo_es
  FROM articulo INNER JOIN categoria ON cat 
id_cat
                        INNER JOIN marca ON articulo
.marca id_marca
                        INNER JOIN modelo ON model 
id_model 
                        INNER JOIN tipos ON tipoart 
id_tipo 
Así puedo llamar a los campos de las otras tablas por su nombre.
Muchas gracias a todos por vuestras indicaciones.
Me alegra poder aportar mi grano de arena a este foro para poder ayudar a otros diseñadores a solucionar sus dudas.
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 05:08.