Hola lynxstyle:
¿Cuál es el problema? ¿por qué dices que te pierdes en la consulta? También tendrías que comentarnos si lo que pretendes es obtener en una sola consulta toda la información que vas a mostrar... no sé con qué herramienta vas a generar el PDF, pero es posible que puedas utilizar varias consultas para generar toda la información que necesitas.
Si la idea es obtener toda la información con una sola consulta, es posible que tengas información duplicada, imagina el siguiente ejemplo:
Código MySQL:
Ver original+-----------+---------------+
| idCliente | nombreCliente |
+-----------+---------------+
| 1 | uno |
| 2 | dos |
| 3 | tres |
+-----------+---------------+
+----------+-----------+-------------+
| idPedido | idCliente | fechaCompra |
+----------+-----------+-------------+
| 1 | 1 | 2013-04-14 |
| 2 | 2 | 2013-05-30 |
| 3 | 2 | 2013-06-05 |
| 4 | 1 | 2013-06-10 |
| 5 | 1 | 2013-06-04 |
+----------+-----------+-------------+
+-----------------+----------+-------------------+----------+
| idDetallePedido | idPEdido | producto | cantidad |
+-----------------+----------+-------------------+----------+
| 1 | 1 | producto uno.1 | 1 |
| 2 | 1 | producto uno.2 | 2 |
| 3 | 2 | producto dos.1 | 3 |
| 4 | 3 | producto tres.1 | 6 |
| 5 | 4 | producto cuatro.1 | 7 |
| 6 | 5 | producto cinco.1 | 2 |
| 7 | 5 | producto cinco.2 | 1 |
+-----------------+----------+-------------------+----------+
mysql
> SELECT c.
*, p.fechaCompra
, dp.producto
, dp.cantidad
-> INNER JOIN detalle_pedidos dp
ON dp.idPedido
= p.idPedido
-> ORDER BY c.idCliente
, p.fechaCompra
, dp.producto
; +-----------+---------------+-------------+-------------------+----------+
| idCliente | nombreCliente | fechaCompra | producto | cantidad |
+-----------+---------------+-------------+-------------------+----------+
| 1 | uno | 2013-04-14 | producto uno.1 | 1 |
| 1 | uno | 2013-04-14 | producto uno.2 | 2 |
| 1 | uno | 2013-06-04 | producto cinco.1 | 2 |
| 1 | uno | 2013-06-04 | producto cinco.2 | 1 |
| 1 | uno | 2013-06-10 | producto cuatro.1 | 7 |
| 2 | dos | 2013-05-30 | producto dos.1 | 3 |
| 2 | dos | 2013-06-05 | producto tres.1 | 6 |
+-----------+---------------+-------------+-------------------+----------+
Observa que el dato del cliente se repite n veces... esto en realidad para un reporte está de más, pero bueno, esa es cuestión de la lógica que quieras llevar en tu reporte.
Desde mi punto de vista no hay nada extraordinario en la consulta que quieres hacer, simplemente tienes que hacer todos los JOIN's sobre las tablas... No posteas la estructura de tus tablas, ni nos pones tampoco datos de ejemplo por lo que resulta complicado darte una respuesta más puntual.
La idea sería hacer algo como esto:
Código MySQL:
Ver original...
ON ps_address.id_customer
=ps_customer.id_customer
ON Aquí pones la relación entre las tablas ps_customer
y ps_orders
ON Aquí pones la relación entre las tablas os_orders
y ps_order_detail
...
Haz la prueba y nos comentas. Si continuas con problemas postea la estructura de tus tablas, pon algunos datos de ejemplo y dinos más cláramente qué es lo que quieres obtener como resultado.
Saludos
Leo.