sql >> Base de Datos >  >> RDS >> Mysql

Cómo saber de qué tabla proviene un resultado al usar UNION en MySQL

¿Por qué no agregar el prefijo como una columna separada (calculada)?

SELECT 'SN' prefix, snippet_id, title FROM tbl_snippets WHERE title LIKE ?
UNION ALL
SELECT 'TA', tag_id, tag FROM tbl_tags WHERE tag LIKE ?
UNION ALL
SELECT 'CA', category_id, category FROM tbl_categories WHERE category LIKE ?

Editar: También he cambiado UNION [DISTINCT] a UNION ALL - por las siguientes razones:

  • Si la consulta original produce resultados diferentes para UNION y UNION ALL , al introducir el prefijo cambiará el número de filas de resultados.
  • En la mayoría de los casos UNION ALL es un poco más rápido que UNION DISTINCT .
  • La mayoría de la gente realmente quiere tener UNION ALL .