theteo 0 Denunciar post Postado Março 30, 2014 Amigos, As tabelas são: tbl_usuarios (id_user, nome_user ) 1 teo 2 Joao 3 Marcio tbl_marcacoes (id_aluno, id_agenda) 1 1 2 1 3 2 ID_USER = ID_ALUNO Eu preciso listar SOMENTE os usuarios que ainda não fizeram RESERVA Entao, o select seria mais ou menos assim: SELECT DISTINCT u.id_user, u.nome FROM tbl_usuarios u LEFT JOIN tbl_marcacoes m ON u.id_user <> m.id_aluno WHERE m.id_agenda = '$id_agenda' ORDER BY u.nome CASO 1 - Para ID AGENDA = 1 retorna MARCIO - OK CASO 2 - Para ID AGENDA = 2 retorna TEO e JOAO - OK CASO 3 - PARA ID AGENDA = 4 retorna NADA ( Tinha que me trazer TEO, JOAO E MARCIO ) Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 30, 2014 Na tabela "outerjoinhada", mas testando a igualdade da chave, teste no WHERE se a chave é nula para o não existente. SELECT DISTINCT u.id_user, u.nome FROM tbl_usuarios u LEFT JOIN tbl_marcacoes m ON u.id_user = m.id_aluno WHERE m.id_agenda = '$id_agenda' And m.id_aluno is null ORDER BY u.nome Ou Use not exuts ou not in numa subquery Compartilhar este post Link para o post Compartilhar em outros sites
theteo 0 Denunciar post Postado Março 30, 2014 Motta, nao funcionou. NÃO TROUXE NINGUEM AGORA. Eu nao sei se esse seria o jeito correto. Só pra deixar claro, e quero apenas LISTAR os alunos que ainda nao agendaram NADA. Poderia me ajudar com essa sub_query ? ou teria uma ideia melhor ? Compartilhar este post Link para o post Compartilhar em outros sites
Motta 645 Denunciar post Postado Março 31, 2014 Um exemplo http://forum.imasters.com.br/topic/453101-consulta-com-not-exists/ Compartilhar este post Link para o post Compartilhar em outros sites
theteo 0 Denunciar post Postado Março 31, 2014 SELECT id_user, nome FROM tbl_usuarios WHERE tipo_user = 'alu' AND id_user not in (SELECT id_aluno from tbl_marcacoes WHERE id_agenda = '$id_agenda') Valeu Motta. Muito obrigado novamente. Compartilhar este post Link para o post Compartilhar em outros sites