Galera meu problema é com a minha consulta, tipo assim, eu quero puxar todos os registro que possuem a mesma data em uma coluna do MySQL só que a data só pode repetir uma vez então eu usei DISTINCT para vim uma vez aquela data porém o DISTINCT só funciona com o campo que eu quero se adicionar mais um ao select o distinct já para de funcionar.
Esse SELECT só faz DISTINCT da data e dá certo porém sem puxar outro campo
Resultado do SELECT
Só que quando adiciono o campo “nomeEspecialidade”
Ele para de fazer o DISTINCT
O que eu estou fazendo de errado, por que até onde eu sei está certo
Imagine esse cenário:
DATA | ESPECIALIDADE
03/11/2018 | Cardiologia
04/11/2018 | Pediatria
03/11/2018 | Cardiologia
Quando se usa distinct vc terá:
DATA | ESPECIALIDADE
03/11/2018 | Cardiologia
04/11/2018 | Pediatria
Até aqui tudo certo? Mas digamos que vc tenha na base:
DATA | ESPECIALIDADE
03/11/2018 | Cardiologia
03/11/2018 | Pediatria
Quando se usa distinct:
DATA | ESPECIALIDADE
03/11/2018 | Cardiologia
03/11/2018 | Pediatria
Isso pq o distinct testa todas as colunas, mesmo vc colocando-o na primeira como fez, pq ele testa a linha inteira, encontrou uma coluna diferente da anterior será exibido pq é distinto um do outro (e ele está certo!), ele só “esconde” os registros quando as linhas são exatamente iguais…
Para tentar resolver seu problema, vc terá que “sacrificar” alguns registros usando group by:
SELECT data, nomEspecialidade FROM tbplantao WHERE...
GROUP BY data;
Seguindo o exemplo anterior ficaria:
DATA | ESPECIALIDADE
03/11/2018 | Cardiologia
Isso sim ele não repetiria e vai colocar sempre o primeiro registro encontrado daquela data, espero ter ajudado
Valeu mano, ajudo muito para problemas futuros com distinct, eu consegui fazer, mas usando dois selects kkk