Prueba así:
Código sql:
Ver originalSELECT
d.nom_disco,
group_concat(b.nom_beb separator ' - ') bebidas
FROM discoteca d
INNER JOIN bebidas_discoteca bd USING(nit_disco)
INNER JOIN bebidas b USING(cod_beb);
Cosas a tener en cuenta:
- Las relaciones entre tablas se realizan por medio de JOIN, con todas sus variantes, y la cláusula ON. No en el WHERE. La razón es simple: las relaciones establecidas en el FROM son optimizables por el DBMS, las del WHERE no.
- Si se usa INNER JOIN entre dos tablas, sólo devolverá los registros que contengan coincidencias, si se quiere incluir los que no coinciden, hay que usar LEFT JOIN o RIGHT JOIN.
- Si se realiza un INNER JOIN entre tres tablas, devolverá datos si hay coincidencia en las tres si o sí. Si existe una relación parcial, no la devolverá; hay que usar LEFT JOIN o RIGHT JOIN.