Array
(
)

Consulta Mysql retornando 6 registro filho por id pai

Cesar Hoffmann
   - 08 mai 2015

Olá galera, sou novo em Mysql to com uma dúvida,
To tentando fazer um menu de categoria e subcategoria eu queria que a consulta retornasse 6 subcategoria por categoria
ex:
Id 1 (categoria)
id 1 (subcategoria)
id 3 (subcategoria)
id 5 (subcategoria)
id 7 (subcategoria)
id 10 (subcategoria)
id 15 (subcategoria)
Id 2 (categoria)
id 2 (subcategoria)
id 4 (subcategoria)
id 8 (subcategoria)
id 20 (subcategoria)
id 30 (subcategoria)
id 40 (subcategoria)
e assim por diante, como faço essa consulta em Mysql ?

Randrade
   - 08 mai 2015

Não entendi muito bem o que você quer.

Porém, se for isso:

Você precisa criar duas tabelas, onde uma será a categoria (item pai) e a outra a SubCategoria (item filho). Neste contexto, você adicionaria um campo referenciando o pai, exemplo:

#Código

Table MenuSubcategoria
int Id
varchar nome
int MenuPaiId
bool Ativo

Table MenuCategoria
int id
varchar Nome
bool Ativo


Neste caso, ao preencher o campo MenuPaiId da tabela MenuSubCategoria com o mesmo ID do MenuCategoria, você já possui uma relação, podendo fazer o select da forma que desejar.

P.S: Aconselho apenas salvar os menus em banco, caso necessite parametrizar os mesmos, ou seja, adicionar novo, ativar ou desativar, etc.
P.S²: Caso não seja essa sua dúvida, por favor, explique melhor, para que possa lhe ajudar.

Cesar Hoffmann
   - 08 mai 2015

Olá, então já criei duas tabelas, minha dúvida é:
Eu tenho um tabela categoria e um subcategoria com vário registro
Queria fazer um select que cada categoria (pai) retornasse um limit de somente 6 registro da subcategoria (filha)

ou seja meu select ia fica assim o retorno dele:

Categoria(pai) Subcategoria(filha)
informatica mouse
informatica gabinete
informatica cabo usb
informatica fonte
informatica Cooler
informatica Placa de vídeo
Game Joystick
Game jogo para PS3
Game jogo para PS2
Game jogo para x-box
Game jogo para PC
Game Cabo para PS3

tipo assim cada pai retorna somente 6 filhos!

Randrade
   - 08 mai 2015

Está meio confuso te ajudar. Não consegui entender seu ambiente, nem para que você precisa.

você pode colocar um LIMIT 6; no final do código, que trará somente 6 itens.
Mas se você explicar melhor, postar para que precisa, o seu ambiente, eu posso elaborar uma resposta melhor.

Gisely :d
   - 26 jun 2015

Ola... eu preciso de uma ajuda acho que pra mesma situação já postada aqui...

Em uma tabela, tenho varias colunas, inclusive a coluna 'setor'.
queria saber se tem como limitar a quantidade de registros para determinado setor.
Por exemplo...
Para o Setor BLI1 traria 3 registros.
Para o Setor BLI2 traria 3 registros.
Para o Setor BLI 3 traria 3 registros.

e assim por diante... tem como fazer isso sem precisar criar outra tabela?

Já tentei group by, limit na subconsulta, mas nada retorna o que eu preciso...

Se puderem ajudar, desde já agradeço!

Randrade
   - 26 jun 2015


Citação:
Ola... eu preciso de uma ajuda acho que pra mesma situação já postada aqui...

Em uma tabela, tenho varias colunas, inclusive a coluna 'setor'.
queria saber se tem como limitar a quantidade de registros para determinado setor.
Por exemplo...
Para o Setor BLI1 traria 3 registros.
Para o Setor BLI2 traria 3 registros.
Para o Setor BLI 3 traria 3 registros.

e assim por diante... tem como fazer isso sem precisar criar outra tabela?

Já tentei group by, limit na subconsulta, mas nada retorna o que eu preciso...

Se puderem ajudar, desde já agradeço!


Gisely Santos, se possível, abra outro tópico, coloque o código de suas tabelas, e explique detalhadamente o que você precisa.
Utilize o SqlFiddle e crie o seu ambiente para podermos testar.