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

join condition

Estas en el tema de join condition en el foro de Mysql en Foros del Web. hola, estoy haciendo una consulta utilizando 4 tablas, relacionadas de 2 en 2 mediate un xxx_id: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código MySQL: Ver original select film.title , ...
  #1 (permalink)  
Antiguo 27/01/2016, 11:05
 
Fecha de Ingreso: diciembre-2007
Mensajes: 299
Antigüedad: 16 años, 4 meses
Puntos: 2
join condition

hola,
estoy haciendo una consulta utilizando 4 tablas, relacionadas de 2 en 2 mediate un xxx_id:
Código MySQL:
Ver original
  1. select film.title,sum(payment.amount)
  2. from rental join film join inventory join payment
  3. using (rental_id,film_id,inventory_id)
al ejecutar la consulta obtengo "ERROR 1054 (42S22): Unknown column 'film_id' in 'from clause'" ¿Alguien me puede explikar que significa dicho error y como solucionarlo?

Gracias:D
__________________
1os pasaos con xAMP en Windows
programando en PERL
  #2 (permalink)  
Antiguo 27/01/2016, 11:27
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: join condition

Cuando usas "Using" todas las tablas tiene que tener el campo que usas, el error dice que no encuentra la columna film_id en todas las tablas te recomiendo que uses un join como este
Código MySQL:
Ver original
  1. select * from tabla1 as t1
  2. inner join tabla2 as t2 on (t1,id=t2.id)
  3. inner join tabla3 as t3 on (t2.id=t3.id)
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me
  #3 (permalink)  
Antiguo 27/01/2016, 11:45
 
Fecha de Ingreso: diciembre-2007
Mensajes: 299
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: join condition

Gracias por tu respuesta @Libras:D

supongo que para uniones de mas de 2 tablas expresar la condicion con USING es mas dificil(imposible??), ya que como bien dices todas han de usar la misma clave

select film.title,sum(payment.amount)
from rental join film join inventory join payment
on payment.rental_id=rental.rental_id and rental.inventory_id=inventory.inventory_id and inventory.film_id=film.film_id
group by 1
order by 2 desc
limit 5;

¿porque en la mayoria de ejemplos sobre uniones que he visto en internet se utiliza ON en vez de USING(siempre q la columna de la clave se llame igual) si con este ultimo es mas sencilla y breve? Alguna razon para usar on y no using??
__________________
1os pasaos con xAMP en Windows
programando en PERL

Última edición por alfa18; 27/01/2016 a las 12:11

Etiquetas: join, select, tabla
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 15:11.