acmsoft Postado Setembro 10, 2007 Denunciar Share Postado Setembro 10, 2007 (editado) Alô,Criei esta query mas está dando erro:SELECT `firma` FROM `emp` WHERE `cae1` in (SELECT c1 FROM `teste`)A Versão do cliente MySQL é 3.23.49. Os campos cae1 e c1 são numéricos.- Dei uma pesquisada no google e li algures que o MySQL só permite subquerys a partir da versão 4. Confirmam?- A query está bem escrita? eu penso que sim mas já duvido de tudo...- O campo c1 tem de ser a chave da tabela teste?O que pode causar esse erro ai?Valeu pelas dicas,Alex Editado Setembro 10, 2007 por acmsoft Link para o comentário Compartilhar em outros sites More sharing options...
0 paulobergo Postado Setembro 11, 2007 Denunciar Share Postado Setembro 11, 2007 Bom... "in" se usa assim:select firmafrom `acme`.`emp`where cae1 in ("42.62.00-0","42.23.00-4");Ou seja, listar as firmas cujo código de atividade economica sejam "42.62.00-0" ou "42.23.00-4", no caso, cae1=varchar...Estes exemplos estão no MySQL 5.0 Reference Manualmysql> SELECT 2 IN (0,3,5,7); -> 0mysql> SELECT 'wefwf' IN ('wee','wefwf','weg'); -> 1Como um select sempre retorna uma lista (linhas) como resultado, em troca de ("42.62.00-0","42.23.00-4")você poderia, então, e perfeitamente, colocar uma subquery... neste caso, uma que retorne as CAEs desejadas, como essa:select codigoscae from `acme`.`tabelacae` where ramo="PADARIA" group by codigoscaeIsso aí, indica uma query que irá retornar apenas duas linhas contendo os códigos referentes a atividade Padaria.Então, a query, completa agora, ficaria assim:select firmafrom `acme`.`emp`where cae1 in ( select codigoscae from `acme`.`tabelacae` where ramo="PADARIA" group by codigoscae );Certo?Quanto às versões, acredito que não deveria funcionar só a partir do MySQL 4... isso porque esta query:select codigo, nome, datafrom ":acmebde:clientesi"where cidade in ( select cidade from "c:\temp\subquery.sql" )com "c:\temp\subquery.sql sendo este arquivo:select cidadefrom ":acmebde:clientesi.dbf"where estado="RJ"group by cidadefunciona perfeitamente usando o SQL92 do Delphi, ou seja, é um recurso básico do SQL e deve estar implementado na versão 3 sim...Ok?Espero ter ajudado!Se der certo, não esquece de colocar o [resolvido]!!! Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
acmsoft
Alô,
Criei esta query mas está dando erro:
A Versão do cliente MySQL é 3.23.49. Os campos cae1 e c1 são numéricos.
- Dei uma pesquisada no google e li algures que o MySQL só permite subquerys a partir da versão 4. Confirmam?
- A query está bem escrita? eu penso que sim mas já duvido de tudo...
- O campo c1 tem de ser a chave da tabela teste?
O que pode causar esse erro ai?
Valeu pelas dicas,
Alex
Editado por acmsoftLink para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados