Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/06/2014, 18:27
Avatar de Macf
Macf
 
Fecha de Ingreso: agosto-2007
Mensajes: 29
Antigüedad: 16 años, 8 meses
Puntos: 0
1 consulta, 4 partes

Estoy haciendo una web que tiene un foro y esta integrada con algunas bases de datos de un juego, el caso es que para mostrarlos en la pagina del perfil necesito recoger 4 datos distintos de 3 bases de datos: lastlogin (de la tabla authme), coins (de la tabla playerpoints), topics (temas iniciados en el foro, el nombre coincide con author_name y identificador tiene que ser 0 para que sea un tema y no una respuesta) y responses (respuestas en el foro, nombre = author_name y identificador!=0). Ahora viene lo divertido, lastlogin no tiene ningún problema, una consulta select tan simple como la que mas, pero que no puedo unir con la de coins (que es igual de simple) porque en la tabla de coins solo aparecen los usuarios que tienen coins, es decir, los que tienen el equivalente a 0 no aparecen, y cuando hago 1 sola query para las dos si coins no existe me devuelve null a todo, en lugar de solo a coins (para que me devolviera el lastlogin bien), luego el número de topics y de respuestas tambien es simple, un COUNT(*) en la misma tabla (foro) con unas clausulas where, pero no se hacer dos count en una misma query (y lo he buscado)

Estas son las 4 consultas que hago por separado:

Código SQL:
Ver original
  1. SELECT lastlogin FROM authme WHERE username= '$name'
  2. SELECT points AS coins  FROM playerpoints WHERE playername= '$name'
  3. SELECT COUNT(*) AS topics FROM foro WHERE author_name= '$name' AND identificador=0
  4. SELECT COUNT(*) AS responses FROM foro WHERE author_name= '$name' AND identificador!=0



Ya se que en el foro mysql no se puede poner codigo de cualquier otro lenguaje, pero por si a alguien le queda mas claro viendolo lo pongo, es el codigo php con el que me funciona bien el tinglado pero haciendolo en 4 consultas separadas, no pido ninguna ayuda con php ni siquiera un comentario sobre el, solo sobre las consultas sql, pero si aun así los moderadores lo quereis borrar no puedo hacer nada.
Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.
Leer las normas del foro, por favor.
PD: Se que es obvio pero AUTHME_TABLE, MONEY_TABLE y FORUM_TABLE son constantes donde almaceno el nombre de las tablas, como pueden cambiar asi las cambio 1 vez en la config y no función por función

Un saludo, y gracias de antemano

Última edición por gnzsoloyo; 20/06/2014 a las 06:31