Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/01/2009, 05:07
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años, 3 meses
Puntos: 2658
Respuesta: empezando con joins

Un INNER JOIN, LEFT JOIN o RIGHT JOIN, requiere una clausula USING o una cláusula ON tabla1.campoA = tabla2.campoB.
Esto significa que la consulta en cuestión debería ser:
Código sql:
Ver original
  1. SELECT
  2.     tpedidos.Id Id,
  3.     tpedidos_gen_per.inf03 inf03,
  4.     tpedidos_gen_per.inf34 inf34,
  5.     tpedidos_gen_per.inf45 inf45,
  6.     tpedidos_gen_per.primaria primaria,
  7.     tpedidos_gen_per.secundaria secundaria,
  8.     tpedidos_gen_per.bachillerato bachillerato,
  9.     tpedidos_completos.Cantidad cantidad_completas
  10. FROM tpedidos
  11.     INNER JOIN tpedidos_gen_per ON tpedidos.Id = tpedidos_gen_per.Id_pedido
  12.     INNER JOIN tpedidos_completos  ON tpedidos.Id = tpedidos_completos.Id_pedido;

En este contexto, solamente te mostrará los registros donde
Cita:
tpedidos.Id = tpedidos_gen_per.Id_pedido= tpedidos_completos.Id_pedido
En el caso tuyo, el problema es que no está muy claro cómo es el problema completo.
¿Podrías aclarar un poco en qué consiste la tarea y cómo son las tablas que se involucran?

Sugerencia final:
1. La cláusula AS es opcional desde hace años (SQL-1999:2000), y solamente se conserva por compatibilidad con versiones muy viejas. No hace falta para que funcione.
2. Trata de acomodar la sentencia en una forma estructurada. Hace que sea más fácil leerla.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)