ENC: Consulta complexa
am 20.10.2005 15:54:23 von fabiomeiraPequena falha.
Voc=EA pode tirar a tabela COMPONENTE das cl=E1usulas FROM mais =
internas. A n=E3o
ser que voc=EA deseje trabalhar com a descrição e n=E3o com o =
c=F3digo do
componente. Mas neste caso, ela s=F3 vai onerar a consulta.
-----Mensagem original-----
De: F=E1bio L=FAcio Meira [mailto:fabiomeira@saocamilo-es.br]=20
Enviada em: quinta-feira, 20 de outubro de 2005 11:50
Para: win32@lists.mysql.com
Assunto: RES: Consulta complexa
Camarada. Testei a solução proposta e realmente ela =E9 funcional. =
Se voc=EA for
realizar muitas consultas, indexe todos os campos que s=E3o utilizados =
no
processo de junção - chaves prim=E1ria e estrangeira (na vers=E3o =
INNODB isto j=E1
=E9 obrigat=F3rio). Esta indexação acelera a consulta, por=E9m =
atrasa a
manipulação (inserção, alteração e exclus=E3o).
[]s
-----Mensagem original-----
De: F=E1bio L=FAcio Meira [mailto:fabiomeira@saocamilo-es.br]=20
Enviada em: quinta-feira, 20 de outubro de 2005 11:30
Para: win32@lists.mysql.com
Assunto: RES: Consulta complexa
Concordo com o Daniel. Gere as tabelas no esquema:
=20
equipamento =3D codigo | descricao
componente =3D codigo | descricao
eq_cp =3D equipamento | componente
=20
=20
Talvez uma solução poss=EDvel seja:
=20
select descricao
from equipamento e
where=20
exists
(select *
from componente c, eq_cp ec
where e.codigo =3D ec.equipamento and
ec.componente in (cod1, cod2, cod3, ..., codn)) --> =
componentes
desejados
and
not exists
(select *
from componente c, eq_cp ec
where e.codigo =3D ec.equipamento and
ec.componente in (cod1, cod2, cod3, ..., codn)); --> =
componentes
n=E3o desejados
=20
=20
Por=E9m eu n=E3o testei.
[]s
=20
=20
-----Mensagem original-----
De: Franco Catena [mailto:facatena@surson.com.br]=20
Enviada em: quinta-feira, 20 de outubro de 2005 07:27
Para: win32@lists.mysql.com
Assunto: Consulta complexa
=20
=20
Bom dia,
=20
estou num dilema, tenho que fazer um cadastro que poderia gerar algo:
=20
tabela 1 1 ---------->N tabela 2=20
=20
A tabela um s=E3o os dados gerais de um equipamento e a tabela dois sao =
as
coisas que este esquipamento pode ou nao ter. Bom occorre que para cada
equipaemnto eu posso ter at=E9 700 itens na tabela 2.
ex:
=20
equipamento A tem dos 700 possiveis 400 itens e termos 3.000 =
equipementos
cadastrados
=20
eu pensei em fazer um unico registro e desprezar a normalizacao com 750
campos( 50 agrupando os dados gerais do equipamento e mais 700 registor =
sdo
tipo boleano) Contudo isso ficaria um registro enorme.=20
=20
Pergunta:
=20
Eu preciso fazer a seguinte consulta:
=20
se fosse normalizado
=20
qual o numero do equipamento ( tabela 1 ) que tem o item 1 , 2 , 3, 134 =
mas
que nao tenha o Item 24, 38
=20
Eu havia pensado em s=F3 gravar os itens que existissem no equipamento =
para
economizar espaco. Sera que =E9 possivel? como fazer esse select?
=20
Alguem pode me ajudar?
=20
Franco Catena
=20
=20
=20
--=20
No virus found in this outgoing message.
Checked by AVG Anti-Virus.
Version: 7.0.344 / Virus Database: 267.12.4/143 - Release Date: =
19/10/2005
=20
=20
--=20
MySQL Windows Mailing List
For list archives: http://lists.mysql.com/win32
To unsubscribe:
http://lists.mysql.com/win32?unsub=3Dfabiomeira@saocamilo-es .br
--=20
MySQL Windows Mailing List
For list archives: http://lists.mysql.com/win32
To unsubscribe:
http://lists.mysql.com/win32?unsub=3Dfabiomeira@saocamilo-es .br
--
MySQL Windows Mailing List
For list archives: http://lists.mysql.com/win32
To unsubscribe: http://lists.mysql.com/win32?unsub=3Dgcdmw-win32@m.gmane.org