Pesquisar na Comunidade
Mostrando resultados para as tags ''n:m''.
Encontrado 1 registro
-
Olá pessoal, não sei se é possível mas minha ideia seria usar o operador IN dentro de um JOIN substituindo o "=". Ex: Teria uma tabela itens_cardapio (car_id, car_nome, car_bebidas) e outra tabela > bebidas (b_id, b_nome) Sei que poderia relaciona n:m tendo uma tabela tipo itens_cardapio_has_bebidas (fk_car_id, fk_b_id) porém queria fazer diferente pois para o que quero isso geraria muitas linhas na tabela de junção. Gostaria que o campo car_bebidas na 1ª tabela armazenasse os ids das bebidas da 2ª tabela. Ex. car_bebidas=1,2,5,6,9,11 e na consulta ficaria algo do tipo: SELECT i.* , GROUP_CONCAT(b.b_nome) FROM itens_cardapio i INNER JOIN bebidas b ON (b.b_id IN i.car_bebidas) Tentei também algo tipo SELECT i.* , (SELECT b.nome FROM bebidas b WHERE b.b_id IN i.car_bebidas) FROM itens_cardapio i Usei algumas variação com GROUP BY e GROUP_CONCAT,... Consegui obter resultados como: - a primeira bebida de cada item do cardápio - repetir várias vezes cada bebida por item, e outros, mas nenhum 100% correto. Se no IN usar os números dos ids das bebidas manualmente, ao invés de puxar de um campo, ele busca as bebidas pedidas, porém não fica dinâmico, pois é sempre os mesmos números de modo a todos itens do cardápio ficaram com (coca-cola,sprite,fanta) por exemplo. Se tiverem alguma ideia agradeço.
- 1 resposta