SQL 其中术语等于或类似(两个表)

SQL where term is equals or like (two tables)

对于 MySQL,我需要找到所有记录,其中一个列类似于一个术语,或者该术语等于一个列,但在另一个 table.

例如:

select *
from table_a TA,
     table_b TB
where TB.number = '1447'
   or TA.subject like '%1447%'

实际上,我正在搜索一个值,它可以在 TB.number 或 TA.subject 上。上面的 SQL 返回了多条记录,它与搜索不匹配。

您正在计算两个表的叉积。您需要使用一些 JOIN 条件来限制结果的数量。

在此处阅读更多相关信息: http://www.w3schools.com/sql/sql_join.asp

是的,您需要在 table 中的 JOIN 中对

这样的公共列进行操作
select * 
from table_a TA
join table_b TB 
on TA.id = TB.id
where TB.number = '1447' 
or TA.subject like '%1447%'
select * from table_a TA, table_b TB where TB.number = '1447'  
UNION ALL 
select * from table_a TA, table_b TB where TA.subject like '%1447%'

似乎这两个 table 或多或少没有关联。做一个 UNION ALL 而不是 JOIN:

select * from table_a TA where TA.subject like '%1447%'
UNION ALL 
select * from table_b TB where TB.number = '1447'