使用MySQL,我需要找到所有记录,其中列就像一个术语,或者术语等于列,但在另一个表中。
例如:
select *
from table_a TA,
table_b TB
where TB.number = '1447'
or TA.subject like '%1447%'
实际上,我正在搜索一个值,它可以在TB.number或TA.subject上。上面的SQL返回多条记录,但与搜索不匹配。
答案 0 :(得分:3)
你正在做两个表的交叉产品。您需要使用某些JOIN条件来限制结果数量。
在此处阅读更多内容: http://www.w3schools.com/sql/sql_join.asp
答案 1 :(得分:1)
是的,你需要在像
这样的公共列的表格中做JOIN
select *
from table_a TA
join table_b TB
on TA.id = TB.id
where TB.number = '1447'
or TA.subject like '%1447%'
答案 2 :(得分:0)
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%'
答案 3 :(得分:0)
UNION ALL
而不是JOIN
:
select * from table_a TA where TA.subject like '%1447%'
UNION ALL
select * from table_b TB where TB.number = '1447'