none
Comparar valores em duas tabelas e retornar os valores que não estão contidos. RRS feed

  • Pergunta

  • Boa tarde pessoal.

    Estou começando com ASP.NET MVC e preciso de ajuda...

    Preciso comparar os valores das tabelas A e B e retornar apenas os valores que não estão contidos em B.

    Para isso preciso utilizar o Id de usuário como referência, pois cada usuário fará uma consulta e retornará valores distintos conforme insira dados na tabela A. 

    Estava tentando algo nesta linha de raciocínio mas ainda me perco muito com a sintase.

    var query = db.A.Where(p => !p.B.Any());

    Alguma sugestão?

    quarta-feira, 8 de fevereiro de 2017 14:06

Respostas

  • Tente assim:

    var query = db.A.Where(p => !db.B.Any(q => q.IdUsuario == p.IdUsuario));



    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quarta-feira, 8 de fevereiro de 2017 14:17

Todas as Respostas

  • Tente assim:

    var query = db.A.Where(p => !db.B.Any(q => q.IdUsuario == p.IdUsuario));



    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    quarta-feira, 8 de fevereiro de 2017 14:17
  • Olá,

    Há várias formas de fazer, como o Juliano mostrou e essa é mais uma:

    db.A.Where(x => db.B.Count(y => y.IdUsuario == x.IdUsuario) == 0);

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    quarta-feira, 8 de fevereiro de 2017 16:15