MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    Consulta em tabelas relacionadas

    avatar
    fchalaca
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11
    Registrado : 31/10/2012

    Consulta em tabelas relacionadas Empty Consulta em tabelas relacionadas

    Mensagem  fchalaca 21/7/2023, 10:26

    Bom dia a todos, solicito ajuda para formulação de uma consulta que me permita obter os dados da forma seguinte:

    Possuo uma tabela de fotos (TabFotos) e uma tabela de participantes presentes nessa foto (TabParticipantes), relacionados pelo campo (idFoto) presente nas 2 tabelas.

    Pretendo, atrvés do campo (idParticipante) obter a indicação das fotos em que estão presentes os participantes indicados, segue um exemplo ilustrativo:

    TabFotos
    idFoto Tipo Foto        Data
    1        Retrato        02/04/2015
    2        Paisagem     03/04/2015
    3        Paisagem     08/04/2015
    4        Festa           22/04/2015
    5        Retrato        25/05/2015
    6       Paisagem      01/06/2015

    TabParticipantes
    idFoto IdParticipante Participante
    1        2                B
    2        2                B
    2        1                A

    3        1                A
    3        4                C
    4        1                A
    4        2                B
    4        3                C
    5        1                A
    6        1                A
    6        3                C

    Pretendo que ao consultar as fotos em que participam (A) e (B) me sejam devolvidas somente a foto 2 e 4 e não as restantes em que A e B participam ainda que não conjuntamente. Um grande obrigado antecipado a quem puder ajudar.
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3892
    Registrado : 21/04/2011

    Consulta em tabelas relacionadas Empty Re: Consulta em tabelas relacionadas

    Mensagem  Marcelo David 26/7/2023, 06:27

    Olá, bom dia.

    Segue exemplo de SQL que retorne apenas as fotos em que aparecem os participantes A e B:

    Código:
    SELECT TabFotos.idFoto, TabFotos.[Tipo Foto], TabFotos.[Data], TabParticipantes.Participante, TabParticipantes.IdParticipante, TabParticipantes.idFoto FROM TabFotos INNER JOIN TabParticipantes ON(TabFotos.idFoto = TabParticipantes.idFoto) WHERE TabParticipantes.IdParticipante IN(1, 2);



    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    Consulta em tabelas relacionadas Marcel11
    avatar
    fchalaca
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11
    Registrado : 31/10/2012

    Consulta em tabelas relacionadas Empty Re: Consulta em tabelas relacionadas

    Mensagem  fchalaca 26/7/2023, 10:01

    Muito obrigado pela sua resposta, mas, a solução que enviou para as instruções SQL não devolvem o resultado pretendido mas sim o Universo de fotografias em que estão presentes somente (A) e (B), quer quando só participa um deles, quer quando participam os dois em conjunto, veja-se o resultado:


    Consulta1


    [th]idFoto[/th][th]IdParticipante[/th][th]Partcipante[/th]
    12B
    22B
    21A
    31A
    41A
    42B
    51A
    61A
    o objetivo é que a consulta devolva sómente a foto nº.2 e a foto nº.4.

    Aqui fica um exemplo para se perceber o objetivo.

    Imagine-se que possuo uma BD com milhares de fotos de eventos de figuras públicas e pretenda selecionar todas em que estão presentes o Presidente da República e o Primeiro Ministro, mas só aquelas em que estejam presentes os dois em simultâneo, ou o Presidente da Câmara de Lisboa e o Presidente da Câmara do Porto, etc, etc.

    Muito obrigado.
    Francisco Chalaça
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3892
    Registrado : 21/04/2011

    Consulta em tabelas relacionadas Empty Re: Consulta em tabelas relacionadas

    Mensagem  Marcelo David 26/7/2023, 17:12

    Acho que entendi.

    Teste por gentileza:

    Código:
    SELECT TF.idFoto, TP.IdParticipante, TP.Participante
    FROM TabFotos AS TF
    INNER JOIN TabParticipantes AS TP ON TF.idFoto = TP.idFoto
    WHERE TP.IdParticipante IN (1, 2)
    AND TF.idFoto IN (
        SELECT idFoto
        FROM TabParticipantes
        WHERE IdParticipante = 1
        AND idFoto IN (
            SELECT idFoto
            FROM TabParticipantes
            WHERE IdParticipante = 2
        )
    );


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    Consulta em tabelas relacionadas Marcel11
    avatar
    fchalaca
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 11
    Registrado : 31/10/2012

    Consulta em tabelas relacionadas Empty Re: Consulta em tabelas relacionadas

    Mensagem  fchalaca 27/7/2023, 11:53

    Muito obrigado Marcelo,

    Estamos quase lá, contudo a consulta devolve-me os registos em duplicado. Não tem como resolver essa situação?

    Junto o ficheiro com o exemplo da aplicação.

    Muito obrigado 
    Francisco Chalaça
    Anexos
    Consulta em tabelas relacionadas AttachmentConsulta.zip
    Você não tem permissão para fazer download dos arquivos anexados.
    (87 Kb) Baixado 7 vez(es)
    Marcelo David
    Marcelo David
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3892
    Registrado : 21/04/2011

    Consulta em tabelas relacionadas Empty Re: Consulta em tabelas relacionadas

    Mensagem  Marcelo David 5/8/2023, 02:59

    Olá Francisco !

    Executei o arquivo aqui e ele resultou o seguinte:

    idFotoIdParticipanteParticipante
    21A
    22B
    41A
    42B

    Não consegui perceber onde se repetem, já que cada linha os dados se divergem.

    Há duas vezes os participantes 1 e 2, pois aparecem em duas fotos, por isso se repetem.


    .................................................................................
    Aprenda como criar formulário desacoplado.
    Conheça meu canal no Youtube e se inscreva.
    Consulta em tabelas relacionadas Marcel11
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8451
    Registrado : 05/11/2009

    Consulta em tabelas relacionadas Empty Re: Consulta em tabelas relacionadas

    Mensagem  Alexandre Neves 3/9/2023, 15:56

    Boa tarde
    Como vai a solução?


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo

    Conteúdo patrocinado


    Consulta em tabelas relacionadas Empty Re: Consulta em tabelas relacionadas

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/6/2024, 10:34