SQL Query比较单独的表和数据库中的列

时间:2014-02-03 19:40:26

标签: mysql sql

好吧,所以我试图将两个表中的两列比较在不同的数据库中。我要警告你,我对SQL很新。我正在尝试编写一个查询来执行以下操作:

If a field in tableA column2 contains a field from tableB column1 at least once, increment a counter

我想知道柜台的价值。此外,当我同样“包含”时,我指的是substr()种方式(fe。“marketplace”包含“市场”一词)。任何人都可以帮我解决这个问题,或者至少指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

我认为这就是你所追求的。它显然不会循环,但它会完成你想要做的事情。

select a.c2,
  count(case when a.c2 = b.c1 then 1 else 0 end) as c1count
from table1 as a 
left join
table2 as b
on a.key = b.key

group by a.c2

或类似的东西。加入可能需要一些工作,但没有更多的信息很难说。祝你好运。

答案 1 :(得分:0)

这将获得tableB.col1的内容作为tableA.col2内容的一部分被找到的次数:

SELECT COUNT(*)
FROM tableA
JOIN tableB ON tableA.col2 RLIKE tableB.col1 

通常,SQL引擎经过优化,可以更好地使用基于集合的逻辑,而不是程序算法,例如循环。