我想找到查询下表的最有效方法:Psuedo代码很好
City Name Comment Mentioned
Tampa Steve "I don't like Jim"
Tampa Jim "Who is Steve"
Lincoln Sarah "Where is Angie"
Lincoln Angie "Hi Sarah"
我想找到一个城市的人提到同一个城市的其他人。有大量数据,所以我需要最有效的方法。我知道如何以多种方式编写查询,但我正在寻找最好的方法。所以基本上史蒂夫"提及"吉姆,但如果史蒂夫提到萨拉那是不相干的,因为他们不是来自同一个城市。我在寻找LINQ或SQL。 注意: Jim可能有20条不同的评论,这就是为什么我不确定在评论中搜索作者之前是否应该创建一个不同的列表。 提前致谢
答案 0 :(得分:0)
select t.Name, t1.Name Mentioned
from table t
inner join table t1 on t.City = t1.City
where t.Comment like '%' + t1.Name + '%'
不是MySql用户,所以我不知道这是否对MySql有效,但是对于其他数据库。
讨论后添加:
select t1.City, t1.Name, names.Name Mentions
from table t1
cross join
(
select distinct x.Name, x.City
from table x
) names
where names.Name <> t1.Name
and t1.Comment like '%' + names.Name + '%'
(这是SQL Server语法。根据需要进行调整。)