group_contact usando left join mysql e separador
09/02/2020
0
https://pt.stackoverflow.com/questions/434904/group-contact-usando-left-join-mysql-e-separador
Saulo Lago
Post mais votado
12/02/2020
teste isto:
SELECT prova.id, GROUP_CONCAT(respostas.name) FROM prova LEFT JOIN respostas ON FIND_IN_SET(trim(cast(respostas.id as varchar(6))) , trim(prova.respostas_id)) > 0 WHERE prova.status = 1 GROUP BY prova.id
Emerson Nascimento
Mais Posts
10/02/2020
Emerson Nascimento
SELECT prova.id, GROUP_CONCAT(respostas.name) FROM prova LEFT JOIN respostas ON respostas.id = prova.respostas_id WHERE prova.status = 1 GROUP BY prova.id
10/02/2020
Saulo Lago
SELECT prova.id, GROUP_CONCAT(respostas.name) FROM prova LEFT JOIN respostas ON respostas.id = prova.respostas_id WHERE prova.status = 1 GROUP BY prova.id
Dessa forma ele apenas retorna o primeiro valor da tabela, ignorando os outros. Com isso não consigo criar um separador para cada item adicionado.
10/02/2020
Kleber Santos
SELECT prova.id, GROUP_CONCAT(respostas.name) FROM prova LEFT JOIN respostas ON respostas.id = prova.respostas_id WHERE prova.status = 1 GROUP BY prova.id
Dessa forma ele apenas retorna o primeiro valor da tabela, ignorando os outros. Com isso não consigo criar um separador para cada item adicionado.
Eu só vejo uma solução com storage Procedure conforme respondido pelo Emerson Nascimento em 2005 O.o
https://www.devmedia.com.br/forum/loop-no-select/265659
Ou tratar essa string com explode/split na sua aplicação.
11/02/2020
Saulo Lago
qual o tipo do campo prova.Respostas_ID ?
Bom dia Emerson,
O campo Respostas_ID é um campo varchar do MySQL. Não sei se existe um outro campo do MySQL para trabalhar melhor com esse tipo de dado
Abraço
12/02/2020
Saulo Lago
teste isto:
SELECT prova.id, GROUP_CONCAT(respostas.name) FROM prova LEFT JOIN respostas ON FIND_IN_SET(trim(cast(respostas.id as varchar(6))) , trim(prova.respostas_id)) > 0 WHERE prova.status = 1 GROUP BY prova.id
Obrigado Emerson, isso me ajudou muito até mesmo me mostrando sobre essa função do MySQL FIND_IN_SET que eu desconhecia.
Só uma observação em seu código ali (descobri isso pesquisando aqui) no Cast não funciona quando inserimos varchar, tive que mudar para Char.
Em outros teste também apenas colocando assim:
respostas ON FIND_IN_SET(respostas.id, prova.respostas_id)
Também funciona.
Vlw, ajudou muito!
Clique aqui para fazer login e interagir na Comunidade :)