Ver Mensaje Individual
  #7 (permalink)  
Antiguo 29/04/2013, 17:25
PYTUFYN
 
Fecha de Ingreso: junio-2003
Mensajes: 104
Antigüedad: 20 años, 10 meses
Puntos: 0
Respuesta: Consultas múltiples a múltiples tablas ¿Cómo lo hago?

Finalmente he conseguido unir todo en una consulta y me funciona perfectamente:

Código MySQL:
Ver original
  1. SELECT juegos.*,
  2. COUNT(DISTINCT videos.id_video) AS total_videos,
  3. COUNT(DISTINCT (CASE WHEN tipo_truco = 1 THEN id_truco END)) AS t1,
  4. COUNT(DISTINCT (CASE WHEN tipo_truco = 2 THEN id_truco END)) AS t2,
  5. COUNT(DISTINCT (CASE WHEN tipo_truco = 3 THEN id_truco END)) AS t3,
  6. COUNT(DISTINCT (CASE WHEN tipo_truco = 4 THEN id_truco END)) AS t4,
  7. COUNT(DISTINCT trucos.id_truco) AS total_trucos
  8. FROM juegos
  9. LEFT JOIN fichas ON juegos.id_juego = fichas.id_juego_ficha
  10. LEFT JOIN analisis ON juegos.id_juego = analisis.id_juego_analisis
  11. LEFT JOIN trucos ON juegos.id_juego = trucos.id_juego_truco
  12. LEFT JOIN videos ON juegos.id_juego = videos.id_juego_video
  13. WHERE juegos.url_juego = '$url_ficha'
  14. GROUP BY juegos.id_juego

Pero sigo sin saber cómo poder mostrar todos los vídeos que coincidan juegos.id_juego = videos.id_juego_video en esa misma consulta. No sé si se podrá hacer tal cosa... Si no tendré que hacer otra consulta por separado (previamente habiendo definido $id_juego):

Código MySQL:
Ver original
  1. SELECT * FROM videos WHERE id_juego_video = '$id_juego'

Por otra parte, en la tabla juegos tengo dos campos, visitas_temporales y visitas_totales, que actualizo de siguiente manera cada vez que se entra a la ficha del juego:

Código MySQL:
Ver original
  1. UPDATE juegos SET visitas_totales = visitas_totales +1, visitas_temporales = visitas_temporales +1 WHERE juegos.url_juego = '$url_ficha'

Imagino que esto ya sí que no puedo unirlo a la primera consulta y tengo que hacerla por separado ¿no?

¿Alguna idea para unirlo todo?

Por cierto, y esto ya es lo último que pregunto ¿cuántas consultas distintas en un mismo documento se considerarían "aceptables"? Sé que esto que pregunto es muy relativo y depende de la cantidad de registros y del tipo de consultas, pero bueno, por saber... Porque si en un documento para mostrar todos los datos y hacer todo lo que necesitas requieres por ejemplo de 10 consultas distintas y en ese momento hay 10 personas online, serían 100 consultas simultáneas... Supongo que lo ideal sería 1 consulta por documento ¿no?

Ahora sí que me despido y dejo de divagar... Saludos!