Consultar dados de diferentes tabelas

votos
0

Eu estou usando uma consulta como esta no meu banco de dados PostgreSQL,

SELECCIONAR TableA.id DE TableA, TableB ONDE TableA.id = 100;

Cada TableA.id é único (seu um autoincrement), estou gettting mais de 1 resultado. Estou faltando alguma coisa aqui?

Publicado 18/11/2008 em 16:02
fonte usuário
Em outras línguas...                            


5 respostas

votos
6

Você está fazendo um cross-join - efetivamente cada linha em TableB contra a única linha no TableA. Se você selecionar algo de TableB bem, isso vai ser mais óbvio :) O fato de que você ainda não seleccionar qualquer coisa de TableB não pára o (TableA, TableB) pares de ser o resultado da junção, antes da projeção .

Respondeu 18/11/2008 em 16:04
fonte usuário

votos
7

Você precisa de uma junção:

SELECT TableA.ID from TableA
INNER JOIN TableB 
ON TableB.TableAID = TableA.ID 
WHERE TableA.ID = 100
Respondeu 18/11/2008 em 16:05
fonte usuário

votos
1

que é a relação entre TableA e TableB?

talvez seja necessário fazer algo assim

Onde TableA.id = 100 E TableB.TableA_Id = TableA.id

Respondeu 18/11/2008 em 16:05
fonte usuário

votos
3

Você está recebendo uma linha de TableAmas todas as linhas da TableB. Talvez você quis dizer:

SELECT TableA.id FROM TableA, TableB WHERE TableA.id=TableB.id AND TableA.id = 100
Respondeu 18/11/2008 em 16:05
fonte usuário

votos
0

Você precisa de uma junção antes de a cláusula em que:

INNER JOIN TableB ON TableA.Id = TableB.Id
Respondeu 18/11/2008 em 17:34
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more