Subquery com MySQL

E ae galera, estou com um probleminha…

Estou tentando realizar um SQL no MySQL, mas o mesmo me retorna um erro. Alguém sabe como posso fazer ele?

SQL:

SELECT * FROM atendimento
WHERE id_objeto = (SELECT MAX(id_objeto) FROM atendimento)

Posta o erro que fica + fácil ajudar :slight_smile:

PS: Esse povo mal acustumado com Oracle :lol: :lol:

Lucashgt !!!

Meu vai estuda !!! E para de ouvir sepultura !!!
8) 8) 8)

[quote=“diego_sl”]Posta o erro que fica + fácil ajudar :slight_smile:

PS: Esse povo mal acustumado com Oracle :lol: :lol:[/quote]

E ae guri, já está trabalhando com MySQL? :lol: :lol: (brincadeira…, tudo tranquilo por ae)

O erro: Syntax error or access violation.

Acredito que seja por causa da versão que estou trabalhando.

Como era a frase que ele mesmo falava?deixa ver se me lembro, era algo do tipo: “…Cara, sempre olha na documentação, sempre via ter alguém que já passou por algo parecido…” :stuck_out_tongue:

Ta na mão seu Lucas,2 linkzinhos de graça ai :), vê se aprende enquanto to vivo :lol: :lol:
http://dev.mysql.com/doc/mysql/en/Subqueries.html
http://dev.mysql.com/tech-resources/articles/subqueries_part_1.html

por que não utilizar SQL ANSI em vez de sub selects em lugares onde eles não deveriam existir (mesmo que o banco aceite)??
tenta este SQL:

SELECT * FROM atendimento
HAVING id_objeto = MAX(id_objeto)

[quote=“Lucashgt”]E ae galera, estou com um probleminha…

Estou tentando realizar um SQL no MySQL, mas o mesmo me retorna um erro. Alguém sabe como posso fazer ele?

SQL:

SELECT * FROM atendimento WHERE id_objeto = (SELECT MAX(id_objeto) FROM atendimento) [/quote]

[quote=“diego_sl”]"…Cara, sempre olha na documentação, sempre via ter alguém que já passou por algo parecido…"[/quote] :smiley:

Já tinha olhado a documentação, mas nada… :wink:

[quote=“urubatan”]por que não utilizar SQL ANSI em vez de sub selects em lugares onde eles não deveriam existir (mesmo que o banco aceite)??
tenta este SQL:

SELECT * FROM atendimento
HAVING id_objeto = MAX(id_objeto)

[/quote]

Até rodou, porém, não me retornou nada…
Vou continuar pesquisando…

Valeu ae Urubatan… :wink:

e qual o conteúdo da tabela atendimento??

São vários campos, porém, a pesquisa feita da maneira que tu postou não retorna nenhum registro.

Os campos são de valores, algumas descrições sobre o antendimento e o id do mesmo.

SELECT * FROM atendimento WHERE id_objeto = MAX(id_objeto)

Test it! :smiley:

[quote=“diego_sl”]SELECT * FROM atendimento WHERE id_objeto = MAX(id_objeto)

Test it! :D[/quote]

Invalid use of group function!

Já tinha testado também…

bom, eu tinha escrito o SQL na pagina mesmo, e fui conferir agora, prestando atenção, não tenho ideia do por que eu mandei a mensagem aqui, sub select no where é ANSI sim, tanto que o in () é ANSI e aceita um select dentro dos parentesis :slight_smile:

acho que to viajando hoje :slight_smile:

Utilização excessiva de Hibernate prejudica o seu SQL :slight_smile:

Na real é isso que está me faltando… :smiley:

Mas valeu pela ajuda.

Sabe por que sua query que inclui subqueries não funcionam no MySQL? Por um motivo bem simples: MySQL não suporta subqueries. O gerador de planos e compilador de consultas do MySQL são tão ruins que não conseguem trabalhar com subqueries. :stuck_out_tongue:
Além do mais, sempre que possível, evite usar subqueries. Não porque a porcaria do MySQL não as suporta (ou não as suportava; as versões 3.2X do MySQL não suportavam subqueries), mas porque o otimizador de consultas e de planos vão ter um trabalho do cão para conseguir otimizar suas queries (isso quando os coitados conseguirem otimizá-la; muitas vezes isso não é possível e você acaba tendo consultas muito demoradas e pouco eficientes).