Como selecionar registros em A que tenham apenas um registro em B

Olá, pessoal!

Estou com um probleminha que parece exercício de faculdade:

Preciso selecionar todos os registros de A que contenham SOMENTE um registro em B, sendo que o relacionamento entre os dois é
A --------C

Alguma idéia?

Posta su estrutura das tabelas …

Imagine as tabelas assim:
Tabela A:
id_A

Tabela B:
id_AC
id_A (fk)
id_C (fk)

Tabela C:
id_C

naquele formato

A——C

vê se isso lhe ajuda:


SELECT * 
FROM    tb_a a,
            tb_b b
WHERE  a.id_a = ( SELECT id_a 
                            FROM    tb_b
                            WHERE  1 = ( SELECT COUNT(*)
                                                 FROM    tb_a ta,
                                                             tb_b tb
                                                 WHERE  ta.id_a = tb.id_a ) )

                                                 

Qual banco de dados está usando, dependendo do SGBD tem funções especificas para pegar a quantidade de linhas sem precisar fazer COUNT.

flw!

[quote=bruno_7317]Olá, pessoal!

Estou com um probleminha que parece exercício de faculdade:

Preciso selecionar todos os registros de A que contenham SOMENTE um registro em B, sendo que o relacionamento entre os dois é
A --------C

Alguma idéia?[/quote]
Isso em JPA, Hibernate ou JDBC com SELECT no braço ?

SELECTzão bare-hands mesmo…
To tentando puxar a consulta no Access. É idade das cavernas mesmo, mas é o que tem!

Você primeiro encontra todos os ids A que apareçam apenas uma vez em B:

  SELECT ID_FKA
  FROM    TABELA_B
  GROUP BY ID_FKA
  HAVING COUNT(*) = 1

Depois é só fazer um join simples entre a tabela A e o resultado da consulta acima.