Ver Mensaje Individual
  #2 (permalink)  
Antiguo 25/05/2012, 14:13
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Datos de dos tablas que no tienen nada entre sí

Hola jinno2323:

Vamos por partes... creo que resulta obvio que tratar de juntar las dos tablas puede resultar tan complicado como hacer que un perro y un gato se lleven bien . la opción de los JOIN's de entrada creo quedaría descartada, pues para para estos es necesario que tengan algún campo común, pero en este caso el titulo no sirve para este propósito. La opción que queda entonces sería utilizar un UNION pero recordando que para poder hacer la unión el número de campos y su tipo debe ser el mismo en cada una de las partes de la unión. En tu post no nos dices cual es la estructura de tus tablas, pero checa este ejemplo, creo que te puede aclarar el panorama. supongamos que tenemos estos datos (la estructura es hipotética, pues en tu post no pones cuál es la estructura de tus tablas ni datos de ejemplo);

Código MySQL:
Ver original
  1. mysql> SELECT * FROM canciones;
  2. +------------+---------------------+-------------------+---------+
  3. | id_cancion | titulo              | interprete        | formato |
  4. +------------+---------------------+-------------------+---------+
  5. |          1 | Mujeres Divinas     | Vicente Fernandez | mp3     |
  6. |          2 | Esclavo y Amo       | Javier Solis      | mp3     |
  7. |          3 | Por Mujeres como Tu | Pepe Aguilar      | wma     |
  8. |          4 | El aventurero       | Pedro Infante     | wma     |
  9. +------------+---------------------+-------------------+---------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> SELECT * FROM fotos;
  13. +---------+---------------------+----------------+-------------+---------+
  14. | id_foto | titulo_foto         | fotografo      | tipo        | formato |
  15. +---------+---------------------+----------------+-------------+---------+
  16. |       1 | Mujeres protestando | Robert Capa    | Noticia     |      35 |
  17. |       2 | Mi Ciudad           | Henri Cartier  | Paisaje     |      24 |
  18. |       3 | Mi perro            | Elliott Erwitt | Instantanea |      12 |
  19. |       4 | Marido y Mujer      | Werner Bischof | Sociales    |      35 |
  20. +---------+---------------------+----------------+-------------+---------+
  21. 4 rows in set (0.00 sec)

De entrada vemos que las estructuras y los campos son diferentes por lo tanto hacer un select * queda descartado. Según lo que dices te interesa sólo el campo titulo... por lo tanto podría hacer algo como esto:

Código MySQL:
Ver original
  1. mysql> SELECT 'cancion' tabla, titulo
  2.     -> FROM canciones
  3.     -> WHERE titulo LIKE '%Mujer%' AND formato = 'mp3'
  4.     -> UNION
  5.     -> SELECT 'foto' tabla, titulo_foto
  6.     -> FROM fotos
  7.     -> WHERE titulo_foto LIKE '%Mujer%';
  8. +---------+---------------------+
  9. | tabla   | titulo              |
  10. +---------+---------------------+
  11. | cancion | Mujeres Divinas     |
  12. | foto    | Mujeres protestando |
  13. | foto    | Marido y Mujer      |
  14. +---------+---------------------+
  15. 3 rows in set (0.00 sec)

Observa que los dos select's tienen el mismo numero de campos y son del mismo tipo (una constante y el título respectivo). Cada SELECT se comporta de manera independiente, por lo tanto puedes filtrar la información de cada una de las tablas según lo que prefieras.

Espero que esto te pueda servir. Sigue leyendo acerca de las UNIONES para encontrar otros ejemplos que te puedan servir. Finalmente, dos observaciones: primero, cuando utilices comparaciones con LIKE utiliza carecteres comodín (%) o en su defecto condiciones (=).

Código:
No hagas esto: 
formato like 'mp3'

Utiliza cualquiera de estas comparaciones:
formato like '%mp3%'       o       formato = 'mp3'
Segundo, cuando publiques alguna pregunta en este foro NO INCLUYAS LINEAS DE CÓDIGO DE OTROS LENGUAJES, solo código SQL y cualquier código sobre MySQL.

Saludos
Leo.