Pesquisa em duas tabelas com colunas diferentes!
Bom dia pessoal, tudo bem?
Estou com um desafio que têm me tirado o sono!
Estou trabalhando em um sistema de pesquisa ondem preciso verificar duas tabelas distintas e apresentar os dados encontrados de uma só vez.
Para entenderem melhor o funcionamento seria para um usuário pesquisar por profissional e/ou empresa de saúde que tenham a keyword em seus registros (Nome, Cidade, UF etc...)
As tabelas são: Profissional e Instituição.
O campos pesquisados seriam: Profissional (nome, profissao, area_atendimento, cidade, uf, zona) e da Instituicao (razao_social, area_atendimento, cidade, uf)
CREATE TABLE `profissional` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nome` varchar(80) NOT NULL,
`sobrenome` varchar(80) NOT NULL,
`---o` varchar(2) NOT NULL,
`data_nasc` date NOT NULL,
`email` varchar(80) NOT NULL,
`senha` varchar(80) NOT NULL,
`cpf` varchar(11) NOT NULL,
`convenios` text NOT NULL,
`instituicao` varchar(120) NOT NULL,
`instituicao2` varchar(120) NOT NULL,
`instituicao3` varchar(180) NOT NULL,
`instituicao4` varchar(180) NOT NULL,
`instituicao5` varchar(180) NOT NULL,
`area_atendimento` varchar(80) NOT NULL,
`cep` varchar(12) NOT NULL,
`endereco` text NOT NULL,
`bairro` varchar(40) NOT NULL,
`cidade` varchar(40) NOT NULL,
`uf` varchar(40) NOT NULL,
`numero` varchar(60) NOT NULL,
`complemento` varchar(200) NOT NULL,
`telefone` varchar(20) NOT NULL,
`telefone1` varchar(20) NOT NULL,
`telefone2` varchar(20) NOT NULL,
`registro_crm` varchar(20) NOT NULL,
`validacao` varchar(80) NOT NULL,
`validado` varchar(2) NOT NULL,
`tipo_doc` varchar(10) NOT NULL,
`profissao` varchar(200) NOT NULL,
`cidade_registro` varchar(200) NOT NULL,
`estado_registro` varchar(120) NOT NULL,
`doc` varchar(10) NOT NULL,
`ultima_visita` datetime NOT NULL,
`profile_image` varchar(200) NOT NULL,
`pergunta_alternativa` varchar(200) NOT NULL,
`pergunta_alternativa2` varchar(200) NOT NULL,
`gravidez1` varchar(300) NOT NULL,
`gravidez2` varchar(300) NOT NULL,
`zona` varchar(50) NOT NULL,
`emailcomercial` varchar(200) NOT NULL,
`website` varchar(300) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=32 DEFAULT CHARSET=latin1
CREATE TABLE `instituicao` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`razao_social` varchar(180) NOT NULL,
`cnpj` varchar(20) NOT NULL,
`cep` varchar(10) NOT NULL,
`area_atendimento` varchar(180) NOT NULL,
`email` varchar(120) NOT NULL,
`senha` varchar(120) NOT NULL,
`endereco` varchar(200) NOT NULL,
`bairro` varchar(200) NOT NULL,
`cidade` varchar(120) NOT NULL,
`uf` varchar(120) NOT NULL,
`numero` varchar(100) NOT NULL,
`validacao` varchar(200) NOT NULL,
`validado` varchar(2) NOT NULL,
`ultima_visita` datetime NOT NULL,
`telefone` varchar(30) NOT NULL,
`telefone2` varchar(30) NOT NULL,
`telefone3` varchar(30) NOT NULL,
`complemento` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=25 DEFAULT CHARSET=latin1
O problema está em que, esses dados deverão dar a possibilidade de serem ORDENADOS de acordo com a vontade do usuário, tanto pela coluna tanto pela ordem ASC/DESC.
Não estou conseguindo fazer isso, porque para trazer esses dados de uma só vez estou tentando criar um SELECT apenas. Porém não consigo usar INNER JOIN porque as tabelas não tem campo em comum, e também não traria as informações corretamente.
Tentei até fazer cada SELECT distinto, e usar o ARRAY pra mostrar, porém ficaram separados os resultados de Profissional e Instuicao e na hora de fazer as ordenação ficaria errado.
Pensei em criar uma Matriz com os dados dos SELECTS, mas também não deu muito certo!
Alguém teria alguma dica em que pudesse me ajudar?
Obrigado.
Discussão (4)
Carregando comentários...