Autor
|
Tema: Duda en consulta (Leído 10,857 veces)
|
sempus
Dakishimetai no ni...
Colaborador
Desconectado
Mensajes: 2.391
GJDAM 愛している
|
yo lo haria de esta forma, los campos se llaman distinto pero la idea se entiende SELECT COUNT(codigo) veces, codigo FROM saldos GROUP BY codigo ORDER BY veces DESC variable = query.veces SELECT * FROM query WHERE veces = variable
si ordeno el resultado de forma descendente, se que el primer registro del cursor sera el mayor o igual, entonces lo capturo en una variable, luego hago una segunda consulta al resultado anterior y le filtro el campo veces, de este modo, no importara cuantas veces aparecezca, me lo tomara todas, nose si me di a entender xD en una sola consulta creo que no se puede, lo intente de varias formas :/
|
|
|
En línea
|
...si la tuviera detendría el tiempo para verla como lo hago en este momento y seria feliz eternamente... Descarga openSUSE
|
|
|
fede_cp
Desconectado
Mensajes: 527
"porque pensar nunca fue entender"
|
uhh, pense que era una sola tabla , jajaja yo lo haria con una sola tabla (menos dolor de cabeza ). saludos y disculpen mi error PD:300 al fin! jajaja
|
|
|
En línea
|
somos lo que hacemos para cambiar lo que somos
http://elhackerblog.blogspot.com el blog de elhacker.net!!
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
Yo haria una vista y salgo del asunto de siempre tener que obtener el valor en una variable y luego llamarlo... sobretodo porque las variables son temporales, seguido te desconectas del motor el dato volatil se flushea. Y estar constantemente haciendo 2 consultas (una para asignar valor a la variable otra para llamar ese valor) no lo aplicaria yo pero... para gustos. Si quieres puedes hacer una vista que se mantendra siempre actualizada a los datos de ambas tablas, ejemplo: mysql> SELECT usuarios.nombres, COUNT(posts.pid) veces FROM usuarios INNER JOIN posts WHERE usuarios.id = posts.id GROUP BY(usuarios.id); +---------+-------+ | nombres | veces | +---------+-------+ | pepe | 6 | | Juan | 4 | | Maria | 6 | | Luis | 2 | +---------+-------+ 4 ROWS IN SET (0.00 sec)
mysql> CREATE VIEW vista AS SELECT usuarios.nombres AS nombre, COUNT(posts.pid) AS veces FROM posts INNER JOIN usuarios WHERE usuarios.id = posts.id GROUP BY usuarios.id; mysql> SELECT nombre, veces FROM vista WHERE veces = ( SELECT MAX(veces) FROM vista); +--------+-------+ | nombre | veces | +--------+-------+ | pepe | 6 | | Maria | 6 | +--------+-------+ 2 ROWS IN SET (0.01 sec)
PD: El ejemplo anterior es basado en mis tablas ejemplos puestas anteriormente.
|
|
« Última modificación: 15 Diciembre 2009, 18:00 pm por ^TiFa^ »
|
En línea
|
|
|
|
sempus
Dakishimetai no ni...
Colaborador
Desconectado
Mensajes: 2.391
GJDAM 愛している
|
que curioso, a mi tambien se me ocurrio lo de la vista xD ,pero la deseche porque no estara siempre actualizada por lo menos, yo para actualizar uso REQUERY( ), entonces, dije, bah, en lugar de hacer 3 consulta 1) para actualizar la vista , 2) la que necesito y 3) la subconsulta, decide hacerlo de la forma que lo postee xD, aunque como tu dices para los gustos los colores, el caso es que esta resuelto
|
|
|
En línea
|
...si la tuviera detendría el tiempo para verla como lo hago en este momento y seria feliz eternamente... Descarga openSUSE
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
que curioso, a mi tambien se me ocurrio lo de la vista xD ,pero la deseche porque no estara siempre actualizada Recuerda corazon que la vista sencillamente es una tabla virtual no existe fisicamente, sus datos siempre reflejan lo que las tablas padres que lo componen posee. Por ende si se elimina, actualiza, inserta algun dato en un campo de la tabla padre, dicho campo tendra automaticamente la misma modificacion en la vista Creo que con la vista creada ya es mas facil porke basaria 1 sola consulta siempre sobre la vista y asi obtendria lo que busca de manera siempre actualizada.
|
|
« Última modificación: 15 Diciembre 2009, 18:28 pm por ^TiFa^ »
|
En línea
|
|
|
|
дٳŦ٭
GNU/Linux Infrastructure Specialist
Ex-Staff
Desconectado
Mensajes: 5.110
|
andaba medio perdido pero muchas gracias Tifa por tu explicación
|
|
|
En línea
|
|
|
|
^Tifa^
Desconectado
Mensajes: 2.804
|
No pasa nada дٳ para eso estamos todos aqui Hay variadas maneras de el chico hacer lo que solicita, lo de la Vista es una, como tambien podria agregar 1 campo extra en la tabla usuarios que se llame por ejemplo 'veces' y que cada vez que X usuario haga un nuevo mensaje pues dicho campo 'veces' vaya creciendo de 1 en 1 Asi podria ahorrarse el costoso analisis del JOIN y consultar en base a una sola tabla 'Usuarios'. Deben haber mas maneras de hacer lo que el pide, pero ya que estamos ofertando sugerencias.
|
|
|
En línea
|
|
|
|
|
|