SELECT data FROM two tables in MySQL
By using UNION
you may get several times rows with the same ID. What about using LEFT JOIN
?
If I've understood your question:
SELECT table_zero.id, table_1.varchar_field, table_2.varchar_fieldFROM table_zero LEFT JOIN table_1 ON table_zero.id = table_1.id LEFT JOIN table_2 ON table_zero.id = table_2.idWHERE table_1.varchar_field LIKE '%str%' OR table_2.varchar_field LIKE '%str%'
Try this
SELECT *FROM (SELECT table_zero.id AS ID, table_1.varchar_field AS fieldFROM table_zero JOIN table_1 ON table_zero.id = table_1.idWHERE table_1.varchar_field LIKE '%str%'UNIONSELECT table_zero.id, table_2.varchar_field AS fieldFROM table_zero JOIN table_2 ON table_zero.id = table_2.id) tblWHERE tbl.field LIKE '%str%'
SELECT table_zero.id, table_1.varchar_field, table_2.varchar_fieldFROM table_zero LEFT JOIN table_1 ON table_zero.id = table_1.id LEFT JOIN table_2 ON table_zero.id = table_2.idWHERE table_1.varchar_field LIKE '%str%' OR table_2.varchar_field LIKE '%str%'