[firebase-br] Select retornonado histórico de conversa

Marlon Conceição marlon em esferati.com.br
Ter Dez 13 16:17:51 -03 2011


Boa noite senhores

Estou criar dentro de um sistema que estou desenvolvendo uma sessão de
mensagens apenas para informações rápidas entre os usuários do sistema.
Para isso 3 tabelas foram criadas:

TB_MENSAGEM_USUARIO

CREATE TABLE TB_MENSAGEM_USUARIO (
    CO_MENSAGEM_USUARIO  INTEGER NOT NULL,
    CO_TP_MENSAGEM       INTEGER,
    DS_MENSAGEM          VARCHAR(255),
    CO_USUARIO_ORIGEM    INTEGER,
    CO_USUARIO_DESTINO   INTEGER,
    DT_MENSAGEM          DATE,
    HS_MENSAGEM          TIME
);
ALTER TABLE TB_MENSAGEM_USUARIO ADD CONSTRAINT PK_TB_MENSAGEM_USUARIO
PRIMARY KEY (CO_MENSAGEM_USUARIO);

ALTER TABLE TB_MENSAGEM_USUARIO ADD CONSTRAINT FK_CO_TP_MENSAGEM FOREIGN KEY
(CO_TP_MENSAGEM) REFERENCES TB_TP_MENSAGEM (CO_TP_MENSAGEM) ON DELETE
CASCADE ON UPDATE CASCADE;
ALTER TABLE TB_MENSAGEM_USUARIO ADD CONSTRAINT FK_CO_USUARIO_DESTINO FOREIGN
KEY (CO_USUARIO_DESTINO) REFERENCES TB_USUARIO (CO_USUARIO) ON DELETE
CASCADE ON UPDATE CASCADE;
ALTER TABLE TB_MENSAGEM_USUARIO ADD CONSTRAINT FK_CO_USUARIO_ORIGEM FOREIGN
KEY (CO_USUARIO_ORIGEM) REFERENCES TB_USUARIO (CO_USUARIO) ON DELETE CASCADE
ON UPDATE CASCADE;


TB_TP_MENSAGEM

CREATE TABLE TB_TP_MENSAGEM (
    CO_TP_MENSAGEM  INTEGER NOT NULL,
    DS_TP_MENSAGEM  VARCHAR(50)
);
ALTER TABLE TB_TP_MENSAGEM ADD CONSTRAINT PK_TB_TP_MENSAGEM PRIMARY KEY
(CO_TP_MENSAGEM);


TB_USUARIO

CREATE TABLE TB_USUARIO (
    CO_USUARIO  INTEGER NOT NULL,
    NO_USUARIO  VARCHAR(150) NOT NULL,
    DS_LOGIN    VARCHAR(12) NOT NULL,
    DS_SENHA    VARCHAR(12),
    DS_NIVEL    CHAR(1)
);
ALTER TABLE TB_USUARIO ADD CONSTRAINT PK_TB_USUARIO PRIMARY KEY
(CO_USUARIO);

Estou tentando retornoar as informações da tabela TB_MENSAGEM_USUARIO de
duas formas:

select
    m.co_mensagem_usuario as CoMensagem,
    u.no_usuario as Origem, u.no_usuario as Destino,
    t.ds_tp_mensagem as tpMensagem,
    m.ds_mensagem as Mensagem,
    m.dt_mensagem as Data,
    m.hs_mensagem as Hora
from
    tb_mensagem_usuario m, tb_tp_mensagem t, tb_usuario u
where
    m.co_usuario_origem  = u.co_usuario
    and m.co_usuario_destino  = u.co_usuario
    and m.co_tp_mensagem = t.co_tp_mensagem
    and m.co_usuario_origem = 1

e 

select
    m.ds_mensagem, m.dt_mensagem, m.hs_mensagem,
(select t.ds_tp_mensagem from tb_tp_mensagem t, tb_mensagem_usuario m
  where m.co_tp_mensagem = t.co_tp_mensagem) as tipo_mensagem,
(select u.no_usuario from tb_mensagem_usuario m, tb_usuario u
  where m.co_usuario_origem  = u.co_usuario) as usuario_origem,
(select u.no_usuario from tb_mensagem_usuario m, tb_usuario u
  where m.co_usuario_destino  = u.co_usuario) as usuario_destino
from
    tb_mensagem_usuario m, tb_tp_mensagem t, tb_usuario u
where u.co_usuario = 1

Todavia não estou obtendo nenhum sucesso alguem poderia esclarecer onde
estou errando?

Agradeço desde já pela ajuda de todos!

Marlon ETI
marlon em esferati.com.br





Mais detalhes sobre a lista de discussão lista