Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/04/2011, 07:25
quimfv
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Subconsulta JOIN

La sintaxis es

Código MySQL:
Ver original
  1. ...
  2. FROM (tabla1 t1 LEFT JOIN tabla 2 t2  ON t1.campocomun=t2.campocomun)
  3.            LEFT JOIN tabla3 t3 ON t1.campocomun=t2.campocomun
  4. ...

En este caso te saldrian todos los registros de la tabla1 (pedidos en tu caso) y los campos de las otras tablas, quedando nulos los que no tengan relacion...

Solo puedes poner un FROM...

Si tienes

Pedidos
idPedido cliente
1................1

Pizzas
idPizzas idPedido Pizza
1.................1........Margarita

Bebidas
idBebidas idPedido Bebida
---------------------------------

Código MySQL:
Ver original
  1. SELECT p.idPedido,p.Cliente,pp.Pizza,b.Bebida
  2. FROM (pedidos p LEFT JOIN pizzas pp ON p.idpedido=pp.idpedido)
  3. LEFT JOIN bebidas b ON p.idpedido=b.idpedido

1.........1.........Margarita........null

ojo que si alguien pide dos bebidas y una pizza saldra dos veces la pizza

lo mismo en la tablas anteriores y

Bebidas
idBebidas idPedido Bebida
1....................1.........Cola
2....................1.........Birra


1.........1.........Margarita........Cola
1.........1.........Margarita........Birra

La solucion seria replantear el esquema con lo siguiente, cuatro tablas

Pedidos
idPedido
cliente
...

DetallePedido
idDetalle
idPedido
idProducto
cantidad
...


Productos
idProducto
Producto
idFamProducto
...

FamProducto
idFamProducto
FamProducto
....

Analizando la familia del procuto podrias ver si hay bebidas o no...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.