Tengo las siguientes tablas:
MARCAS
| id | marca |
| 1 | Garmin |
| 2 | Sony |
| 3 | Linksys |
PRODUCTOS
| id | idmarca | modelo | descripcion |
| 1 | 3 | RJ654 | Router |
| 2 | 1 | GJ655 | GPS |
| 3 | 2 | NJ656 | Notebook |
STOCK
| id | idprod | cantidad |
| 1 | 1 | 10 |
| 2 | 1 | 20 |
| 3 | 1 | 10 |
| 4 | 3 | 30 |
| 5 | 3 | 20 |
Necesito hacer una consulta que me traiga todos los datos de la tabla PRODUCTOS, la marca y la suma de las cantidades que estan en la tabla STOCK.
He logrado hacerlo pero solamente me trae los datos de los productos que tienen stock, y no aparecen los que no tienen, en este caso no aparece el id de producto 2
Código:
| id | idmarca | modelo | descripcion | marca | cant |SELECT productos.*, marcas.marca, SUM(stock.cantidad) AS cant FROM stock, productos LEFT JOIN marcas ON productos.idmarca=marcas.id WHERE stock.idprod=productos.id GROUP BY stock.idprod
| 1 | 3 | RJ654 | Router | Linksys | 30 |
| 3 | 2 | NJ656 | Notebook | Sony | 60 |
Lo que necesito es esto:
| id | idmarca | modelo | descripcion | marca | cantidad |
| 1 | 3 | RJ654 | Router | Linksys | 30 |
| 2 | 1 | GJ655 | GPS | Garmin | 0 |
| 3 | 2 | NJ656 | Notebook | Sony | 60 |
Nesesito que aparezca la cantidad en cero si es que no hay stock todo en una sola consulta. Alguien tiene idea de cómo hacerlo?
Desde ya mil gracias por la ayuda que me puedan dar