Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/10/2013, 04:49
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 1 mes
Puntos: 300
Respuesta: Query compleja SQL

creo que lo que quieres es unir mediante INNER JOIN las tablas y seleccionar datos de ambas. Te pondré un ejemplo sencillo y tú lo adaptas a tus datos
Imaginemos que la tabla 1 llamada codigos cuenta con el campo id_codigo, que es Primary Key y con otros datos en otros campos, y la tabla 2 llamada ventas se relaciona con ella por el campo id_codigo, que también lo encontramos en ella además de otros campos propios.
Código MySQL:
Ver original
  1. SELECT v.detalleventa, v.precioventa, c.id_codigo, c.codigo
  2.  FROM ventas v
  3.  INNER JOIN codigos c ON v.id_codigo = c.id_codigo
Como ves, están unidos por el campo id_codigo que aparece en ambas tablas, en ventas es Foreign Key, y en codigos es Primary Key. Estudia un poco sobre esos conceptos. Se unen en este caso con INNER JOIN, en el que solo te traerá las coincidencias en ambas tablas por ese campo, es decir, todos los id_codigo de ventas serán seleccionados con las coindicencias en ese campo de codigos. El primary key está indexado por naturaleza los Foreign Key deben ser indexados. Este ese el fundamento de las bases de datos relacionales, pero hay mucho más.
Naturalmente, también puedes traerte mediente filtrado con where por algún valor específico. Observarás que he usado alias para los nombres de las tablas, c para codigos y v para ventas. Puedes usar o el nombre de la tabla o los alias. Si los creas en una consulta, tendrás que llamar a esa tabla en la consulta siempre por el alias.
Quizás deberías echar un vistazo a tutoriales sobre bases de datos relacionales y las consultas SQL. Por supuesto, en el manual de MySQL encontrarás mucha información.