Ver Mensaje Individual
  #3 (permalink)  
Antiguo 28/04/2011, 13:14
Capi666
 
Fecha de Ingreso: febrero-2007
Ubicación: Valencia
Mensajes: 457
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Consulta en mysql de dos tablas

Cita:
Iniciado por quimfv Ver Mensaje
No funcionará pero la logica seria esta

Código MySQL:
Ver original
  1. SELECT t.palabras,
  2.              COUNT(*) AS num,
  3.              (SELECT count(*)
  4.                    FROM files
  5.                       WHERE titulo LIKE '%t.palabras%'
  6.                             OR descripcion LIKE '%t.palabras%' ) as numFiles
  7. FROM tags t GROUP BY t.palabras;

'%t.palabras%'
Habría que construir una expresión regular que usara el valor de la consulta principal, no se si se puede hacer...

A ver si alguien me contradice pero yo lo que haria seria

1. Ejecutar la primera consulta
2. Recorrer el resultado con un bucle (externo, php o lo que sea)
3. Mostrar el registro ---- palabra* numero
4. Ejecutar la segunda consulta con la palabra*
5. Mostrar el resultado ---- XX files

La estructura que tines no me acaba de convencer

Tags
idTag PK
palabra Unic

Files
idFiles
nombre
titulo
descripcion
...

RelFilesTags
idRel PK
idFiles FK
idTag FK

Con esta estructura lo tendrias solucionado puesto que el numero de ocurrencias de una palabra coincidira con el numero de files relacionados, ademas los tags se guardan una sola vez con el consiguiente ahorro de espacio... y la base estaria normalizada.
Hola,

Gracias por la respuesta...

Hacerlo en dos consultas lo tengo claro, pero... ¿que pasa si lo quiero ordenar por el numero de veces que aparece la palabra en titulo o en descripcion? ¿como lo tendria que hacer?

La estructura de las tablas no las puedo cambiar...

Gracias y Un saludo,