Mysql
 sql >> Database >  >> RDS >> Mysql

Come sapere da quale tabella proviene un risultato quando si utilizza UNION in MySQL

Perché non aggiungere il prefisso come una colonna separata (calcolata)?

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 ?

Modifica: Ho anche cambiato UNION [DISTINCT] a UNION ALL - per i seguenti motivi:

  • Se la query originale produce risultati diversi per UNION e UNION ALL , l'introduzione del prefisso cambierà il numero di righe dei risultati.
  • Nella maggior parte dei casi UNION ALL è leggermente più veloce di UNION DISTINCT .
  • La maggior parte delle persone desidera effettivamente avere UNION ALL .