Ir para conteúdo

POWERED BY:

Arquivado

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

KUROL3

INNER COM select não funciona

Recommended Posts

Pq esse select não funciona da o seguinte erro...

 

Unknown column 'O.id' in 'where clause'

- mas na tebela O existe o ID...

ocorrencias O
INNER JOIN (SELECT COUNT(*) FROM ocorrencias_releases OCOR WHERE OCOR.id_ocorrencia = O.id) as B

Marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

existe mas está relacionando com uma tabela com um COUNT apenas

 

relacione as duas tabelas e crie outra alternativa para contar depois que estiver funcionando como deseja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom deixa eu explicar melhor o que eu quero.. ai você ve se pode me ajudar

 

tenho uma tabela de ocorrencias.....

tenho outra tabela de ocorrencias_releases.....

 

na tabela de ocorrência tenho o campo id_usuario_para

e na tabela ocorrencias_releases tenho tb o campo id_usuario_para

 

estou fazendo um select assim...

 

select if ((select count(*) from ocorrencias_releases where ocorrencias_releases.id_release = ocorrencias.id) = 0, o_usuario_para_é_da_tabela_ocorrencia, o_usuario_para_é_da_tabela_ocorrencia_releases)

 

o comando está funcionando.. corretamente.. so que tenho que fazer uns 5 if desses para id_usuario_para, id_usuario, data_proxima_acao e etc ...

gostaria de criar um boleano para usar em todos os lugares.... depois do select, do where, e etc..

 

marco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá vou tentar explicar melhor....

 

tenhos duas tabelas

1 - OCORRENCIAS

Imagem Postada

 

2 - OCORRENCIAS_RELEAES

Imagem Postada

 

 

QUANDO O USUÁRIO INSERE UMA OCORRÊNCIA E NUM PRIMEIRO MOMENTO NÃO INSERE NENHUM RELEASE O USUÁRIO PARA (para quem é o release) É O CAMPO id_usuario_para

QUANDO O USUÁRIO INSERE UM RELEASE O USUÁRIO PARA DEIXA DE SER O ID_USUARIO_PARA DA TABELA OCORRENCIAS E PASSA A SER O ID_USUARIO_PARA TABELA OCORRENCIA RELEASES

 

Essa mesma regra é valida para o id_departamento também....

 

Quando vou listar para mostrar para o usuário a tela fica assim.....

Imagem Postada

 

O SELECT É FEITO ASSIM....

 

SELECT 
							
																	(
									 SELECT usuario FROM usuarios WHERE usuarios.id = 
									 	IF ((
												SELECT 
														count(*) 
												FROM 
													ocorrencias_releases W_OCR
												WHERE 
													O.id = W_OCR.id_ocorrencia 
											) = 0 , O.id_usuario_para, (SELECT OCR3.id_usuario_para FROM ocorrencias_releases OCR3 WHERE OCR3.id_ocorrencia = O.id ORDER BY OCR3.id DESC LIMIT 1))
									) as nome_usuario_para,
									(SELECT usuario FROM usuarios WHERE usuarios.id = 
									 	IF ((
												SELECT 
														count(*) 
												FROM 
													ocorrencias_releases W_OCR
												WHERE 
													O.id = W_OCR.id_ocorrencia 
											) = 0 , O.id_usuario, (SELECT OCR4.id_usuario FROM ocorrencias_releases OCR4 WHERE OCR4.id_ocorrencia = O.id ORDER BY OCR4.id DESC LIMIT 1))
									) as nome_usuario_de,
									(SELECT nome FROM departamentos D WHERE D.id = 
									 	IF ((
												SELECT 
														count(*) 
												FROM 
													ocorrencias_releases W_OCR
												WHERE 
													O.id = W_OCR.id_ocorrencia 
											) = 0 , O.id_departamento, (SELECT OCR5.id_departamento FROM ocorrencias_releases OCR5 WHERE OCR5.id_ocorrencia = O.id ORDER BY OCR5.id DESC LIMIT 1))
									) as nome_departamento,
									C.nome as nome_cliente,
									OT.nome as ocorrencias_tipo_nome
							FROM
								ocorrencias O
								INNER JOIN clientes C ON (C.id = O.id_cliente)
								INNER JOIN ocorrencias_tipo OT ON (OT.id = O.id_tipo)

SERA QUE CONSEGUIMOS OTIMIZAR, PQ TODAS AS VEZES QUE VOU PEGAR UM DADO PRECISO CHECAR SE EXISTE RELEASE

OU A POSSIBILIDADE DE CHECAR UMA ÚNICA VEZ SE EXISTE RELEASE.

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.