Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

João Silva_164604

query

Recommended Posts

Boas tardes,

 

Tenho uma duvida numa query mysql gostava de saber se é possivel e se me podem ajudar,

vou simplificar as tabelas.

 

Passo a explicar, tenho duas tabelas, a primeira empresas e a segunda utilizadores.

 

A minha ideia é guardar na tabela empresas quem criou(c_user) e alterou(m_user) a respetiva empresa.

 

E ao fazer uma consulta ele devolver os dados todos da empresa, mas em vez de retornar o id do user(c_user e m_user) retornar a sigla do respetivo user.

 

Base de dados

 

 

CREATE TABLE `empresas` (

`_id` int(11) NOT NULL AUTO_INCREMENT,

`nome` text COLLATE utf8_unicode_ci NOT NULL,

`email` text COLLATE utf8_unicode_ci NOT NULL,

`cdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

`mdate` datetime NOT NULL,

`c_user` int(11) NOT NULL,

`m_user` int(11) NOT NULL,

PRIMARY KEY (`_id`),

KEY `c_user` (`c_user`),

KEY `m_user` (`m_user`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=4 ;

 

 

CREATE TABLE `user_login` (

`_id` int(11) NOT NULL AUTO_INCREMENT,

`nome` text COLLATE utf8_unicode_ci NOT NULL,

`sigla` tinytext COLLATE utf8_unicode_ci,

`email` text COLLATE utf8_unicode_ci NOT NULL

PRIMARY KEY (`_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=5 ;

 

 

ALTER TABLE `empresas`

ADD CONSTRAINT `empresas_ibfk_1` FOREIGN KEY (`c_user`) REFERENCES `user_login` (`_id`),

ADD CONSTRAINT `empresas_ibfk_2` FOREIGN KEY (`m_user`) REFERENCES `user_login` (`_id`);

 

 

Query

A minha ideia era algo do genero:

 

 

SELECT empresas.*, user_login.sigla

FROM empresas,user_login

WHERE empresas.c_user = user_login._id

AND empresas.m_user = user_login._id <---- errada - até este ponto ele faz o que quero que é trocar o numero do c_user pela sigla, mas ao tentar fazer o mesmo ao m_user ele não responde corretamente

 

Desde já agradeço,

 

Este é o meu primeiro tópico aqui no forum

Compartilhar este post


Link para o post
Compartilhar em outros sites

Instancia a tabela de usuarios 2x

 

 

SELECT *

FROM empresas,user_login criou,user_login alterou

WHERE empresas.c_user = criou._id

AND empresas.m_user = alterou._id  

ajudou ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boas Motta,

 

Ajudou bastante obrigado :)

 

Resolvi assim,

 

 

SELECT empresas.*, criou.sigla as criou, alterou.sigla as alterou
FROM empresas,user_login criou,user_login alterou
WHERE empresas.c_user = criou._id
AND empresas.m_user = alterou._id
Muito obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.