Fórum group_contact usando left join mysql e separador #608031
09/02/2020
0
https://pt.stackoverflow.com/questions/434904/group-contact-usando-left-join-mysql-e-separador
Saulo Lago
Curtir tópico
+ 0Post 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.idEmerson Nascimento
Gostei + 1
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.idGostei + 0
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.idDessa forma ele apenas retorna o primeiro valor da tabela, ignorando os outros. Com isso não consigo criar um separador para cada item adicionado.
Gostei + 0
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.idDessa 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.
Gostei + 0
11/02/2020
Emerson Nascimento
qual o tipo do campo prova.Respostas_ID ?
Gostei + 0
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
Gostei + 0
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.idObrigado 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!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)