Array
(
)

Inner Join com campos da mesma tabela

_flavio_
   - 27 ago 2008

Olá, pessoal. Deve ser simples, mas juro que não to conseguindo.

Preciso saber o nome das pessoas que estão online usando um programa que é um msn genérico.

Tipo : Quais usuários da lista do Paulo estão online agora? É isso que preciso saber.

Essa é a estrutura das tabelas :

Usuario : ´codigo_usuario´ e ´nome_usuario´

Contatos: ´contato_cod_usuario´ e ´contato_cod_amigo´

Online : ´cod_usuario_online´

Só isso.

- Na tabela ´Usuario´ ficam armazenados todos os usuários.

- Na tabela ´Contatos´ ficam armazenados registros indicando ´quem é amigo de quem´. Por exemplo: o usuário Jose tem como amigo o Paulo. Então ficaria algo como : contato_cod_usuario = 1 , contato_cod_amigo=2 (Sendo 1 = Jose e 2= Paulo)

- Tabela ´Online´ ficam armazenados os cod. dos usuários online.

Agradeço a ajuda

Signori
   - 28 ago 2008

Tenta assim:
#Código

select Online.cod_usuario_online, Usuario.nome_usuario
from Online
inner join Usuario on (Online.cod_usuario_online = Usuario.cod_usuario)
inner join Contatos on (Online.cod_usuario_online = Contatos.contato_cod_amigo)
where (Contatos.contato_cod_usuario = CodPaulo)


att

_flavio_
   - 28 ago 2008


Citação:
Tenta assim:
#Código

select Online.cod_usuario_online, Usuario.nome_usuario
from Online
inner join Usuario on (Online.cod_usuario_online = Usuario.cod_usuario)
inner join Contatos on (Online.cod_usuario_online = Contatos.contato_cod_amigo)
where (Contatos.contato_cod_usuario = CodPaulo)


att
Valeu, signori! Seu script me quebrou um galhão! Obrigado mesmo.