Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

consulta sql para sacar el MAX(id) con otro campo relacionado a dicho id

Estas en el tema de consulta sql para sacar el MAX(id) con otro campo relacionado a dicho id en el foro de Mysql en Foros del Web. Código PHP: /* Tengo 2 tablas Opiniones      id     titulo     id_opinador     estado((desabilitado, habilitado) Opinadores     id     nombre     estado (desabilitado, habilitado)      Lo que deseo hacer es: una consulta sql  para que me devuelva el OPINADOR con su opinión mas reciente Ahora mismo lo esta haciendo bien, seleccionando los opinadores y el id de la opiniones más reciente de dichos opinadores con "MAX(opiniones.id)", pero,  no toma el titulo de la "opiniones" con relacion a su id. Miren mas abajo la consulta que tengo y miren a ver que me falta Muchas gracias de antemano: */ $sql   =  "SELECT opinador.id AS id_op, opinador.nombre AS nombre, MAX(opiniones.id) AS id_opinion, opiniones.titulo AS titulo           FROM opinadores           INNER JOIN opiniones ON  opinador.id = opiniones.id_opinador  ...
  #1 (permalink)  
Antiguo 26/10/2010, 10:28
Avatar de rustty  
Fecha de Ingreso: junio-2005
Mensajes: 68
Antigüedad: 18 años, 10 meses
Puntos: 1
consulta sql para sacar el MAX(id) con otro campo relacionado a dicho id

Código PHP:
/*

Tengo 2 tablas
Opiniones 
    id
    titulo
    id_opinador
    estado((desabilitado, habilitado)
Opinadores
    id
    nombre
    estado (desabilitado, habilitado)
    
Lo que deseo hacer es: una consulta sql  para que me devuelva el OPINADOR con su opinión mas reciente

Ahora mismo lo esta haciendo bien, seleccionando los opinadores y el id de la opiniones más reciente de dichos opinadores con "MAX(opiniones.id)", pero, 
no toma el titulo de la "opiniones" con relacion a su id.

Miren mas abajo la consulta que tengo y miren a ver que me falta

Muchas gracias de antemano:
*/

$sql  "SELECT opinador.id AS id_op, opinador.nombre AS nombre, MAX(opiniones.id) AS id_opinion, opiniones.titulo AS titulo 
         FROM opinadores 
         INNER JOIN opiniones ON  opinador.id = opiniones.id_opinador 
         WHERE opinador.estado = 1 AND opiniones.estado = 1 
         GROUP BY opinadores.id 
         LIMIT 6"
;

$query mysql_query($sql);


while(
$resultados mysql_fetch_array($queryMYSQL_ASSOC)){
    
//$my_resultado[] = $resultado_otros_opinadores;
    
echo "[".$resultados["id_op"]."] ".$resultados["nombre"]." -> [".$resultados["id_opinion"]."] ".$resultados["titulo"]."<br>";

  #2 (permalink)  
Antiguo 27/10/2010, 02:34
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: consulta sql para sacar el MAX(id) con otro campo relacionado a dicho id

Código SQL:
Ver original
  1. SELECT sbc.id_op,
  2.              sbc.nombre,
  3.              sbc.id_opinion
  4.              opnes2.titulo
  5. FROM
  6.     (SELECT op.id AS id_op,
  7.              op.nombre AS nombre,
  8.              MAX(opnes.id) AS id_opinion
  9.      FROM opinadores op
  10.          INNER JOIN opiniones opnes
  11.               ON  op.id = opnes.id_opinador
  12.      WHERE op.estado = 1 AND opnes.estado = 1
  13.      GROUP BY op.id,op.nombre
  14.      LIMIT 6)  AS sbc
  15.   INNER JOIN opiniones opnes2
  16.          ON sbc.id_opinion=opnes2.id

Si?

Quim
  #3 (permalink)  
Antiguo 27/10/2010, 05:53
Avatar de rustty  
Fecha de Ingreso: junio-2005
Mensajes: 68
Antigüedad: 18 años, 10 meses
Puntos: 1
Respuesta: consulta sql para sacar el MAX(id) con otro campo relacionado a dicho id

La consulta esta Perfecta hermano :D

Sólo se te olvidó una "," en la línea 3

Muchas Gracias, me has aumentado los conocimientos en consultas avanzadas :D
  #4 (permalink)  
Antiguo 28/10/2010, 01:56
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: consulta sql para sacar el MAX(id) con otro campo relacionado a dicho id

Si faltaba esa coma!!!



Quim

Etiquetas: sql, campos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:25.