Ya lo hice, es algo que esta testeado, lo más veloz en join creo que era un híbrido con exists, algo como:
Código:
select
b.id, b.nombre
from
tbl_bebidas b
inner join tbl_rel_bebidas r on r.bebida = b.id and exists (select 1 from tbl_rel_comidas where usuario = r.usuario )
-- Sino algo como solo con joins:
select
b.id, b.nombre
from
tbl_bebidas b
inner join tbl_rel_bebidas r on r.bebida = b.id
inner join tbl_rel_comidas c on c.usuario = r.usuario
Esto lo testié con no muchos registros (unos 500 usuarios, con 30 items en cada tabla (comidas y bebidas), y relaciones al azar), y los tiempos son menores con query del exists.