Ver Mensaje Individual
  #15 (permalink)  
Antiguo 26/04/2006, 08:06
Guish
 
Fecha de Ingreso: abril-2006
Mensajes: 62
Antigüedad: 18 años
Puntos: 0
Exclamación Editor Visual para Subconsultas

Estoy buscando un Frontend para MySQL que permita realizar consultas complejas con varias subconsultas anidadas, de alguna forma rápida y sencilla.

Personalmente, si bien soy bastante nuevo en MySQL ya aprendí a escribir manualmente las subconsultas o subquerys de manera de obtener los datos que necesito.

Pero cuando son muchas las subconsultas se torna un poco díficil ir llevando la cuenta de que campos arrojaba en el resultado cada una y la sintaxis se va complicando.

Dediqué un buen tiempo a buscar un frontend que me permita realizar más rápido esta tarea y todavía no encuentro uno que me satisfaga completamente.

A modo de comparación en MS-Access este problema se resuelve de forma sencilla, porque cuando creamos una consulta podemos guardarla y luego utlizarla como subconsulta de otra. Y cuando la agregamos para usarla como subconsulta, nos muestra los campos y podemos operarla como un tabla más. Además la sintaxis permanece clara ya que "oculta" el código de las subconsultas anidadas y las trata como una tabla más.

Hasta ahora probé MyDB Studio, Navicat MySQL, SQLyog Enterprise, DBACentral for MySQL y EMS SQL Manager for MySQL y no encontré la manera de editar visualmente las subconsultas.

Si alguien en este foro conoce una herramienta con esa funcionalidad o si quiere comentar alguna técnica que use para hacer esta tarea me sería de gran ayuda.

A modo de ejemplo solamente, por si ayuda a explicar de que estoy hablando, esta es la última consulta que hice.

Diagrama: img275.imageshack.us/img275/4134/erd9ad.png

Y la consulta:
Cita:
SELECT conjuz.n_expte,
juzgado.nombre,
conjuz.ultima
FROM (
SELECT rel_usuario_expte.n_expte,
rel_usuario_expte.juzgado_id,
controlados.ultima
FROM (
SELECT lastnotif.numero AS expediente,
secretaria.juzgado_index AS juzgado_id,
lastnotif.ultima
FROM (
SELECT expediente.numero,
expediente.secretaria_index,
MAX(notificacion.fecha) AS ultima
FROM notificacion,
expediente
WHERE expediente.id = notificacion.expte_index
GROUP BY expediente.numero,
expediente.secretaria_index
) as lastnotif
LEFT JOIN secretaria ON lastnotif.secretaria_index =
secretaria.id
) AS controlados
RIGHT JOIN rel_usuario_expte ON controlados.expediente =
rel_usuario_expte.n_expte AND controlados.juzgado_id =
rel_usuario_expte.juzgado_id
) AS conjuz
LEFT JOIN juzgado ON conjuz.juzgado_id = juzgado.id
ORDER BY conjuz.ultima
Sepan disculpar el formato del diagrama y la consulta, como soy nuevo no me habilitan el html

Muchas gracias