标签: intersect

MySQL INTERSECT通过连接表?

所以基本上我有两个表,包含URL和TAGS,通过连接表TAGS_URLS在两者之间具有has-and-belongs-to-many关系.

通过标记查找URL的简单查询将是:

SELECT urls.id FROM urls 
  INNER JOIN tags_urls ON urls.id=tags_urls.url_id
  INNER JOIN tags ON tags_urls.tag_id=tags.id 
WHERE tags.tag IN ("sample","tag","list");
Run Code Online (Sandbox Code Playgroud)

但是,我正在尝试恢复包含所有一组标记的所有URL的交集.即,只有包含标签"sample"和"tag"AND"list"的URL.

我有一个工作查询,但我无法在不到30秒的时间内执行查询.

SELECT a.id
  FROM
    (SELECT DISTINCT urls.id FROM urls
      INNER JOIN tags_urls ON tags_urls.url_id=urls.id INNER JOIN tags ON tags.id=tags_urls.tag_id
      WHERE tags.tag = 'sample') a
  JOIN
     (SELECT DISTINCT urls.id FROM urls
      INNER JOIN tags_urls ON tags_urls.url_id=urls.id INNER JOIN tags ON tags.id=tags_urls.tag_id
      WHERE tags.tag = 'list') b
  ON a.id = b.id;
Run Code Online (Sandbox Code Playgroud)

结果集是正确的,但性能可怕.

我目前还在Redis数据库中将数据复制为存储在标记集中的URL ID列表,这样我就可以做到这样的事情并很快得到结果集.

SINTER "tag-sample" "tag-list"
Run Code Online (Sandbox Code Playgroud)

通过合理的努力,是否有可能通过SINTER将此任务的MySQL性能提升到Redis级别?

mysql has-and-belongs-to-many intersect

5
推荐指数
1
解决办法
2135
查看次数

如何使用Rect.intersect方法.

我创建了一个游戏,你可以移动一个矩形并从天空中躲避其他下降的矩形.虽然每次矩形相交都没有任何反应.

if(mSquare.intersect(jSquare)){ canvas.drawColor(Color.BLACK);
要么

collision = mSquare.intersect(jSquare);
     if(collision==true){  canvas.drawColor(Color.RED);
  }  this always returns false no matter where the rectangles are....... 
Run Code Online (Sandbox Code Playgroud)

android canvas intersect

5
推荐指数
1
解决办法
1万
查看次数

Haskell相交(List)

我试图得到两个列表相交的"对立面":如:

let all  = [1..5]
let mask = [2,3]
let res  = ???
-- let res = all `intersect` mask <-- reverse/opposite ?
-- I want to get [1,4,5] ?
Run Code Online (Sandbox Code Playgroud)

haskell list intersect

5
推荐指数
1
解决办法
1703
查看次数

查找数据帧rownames的交集

我有两个数据帧.两者中的行名称都是日期.我想要做的是,我想在两个数据帧中选择所有公共行(具有相同日期)并创建仅具有这些公共行的新数据帧.

当然,各列将彼此相邻.

有人可以帮忙吗?

r date dataframe intersect

5
推荐指数
1
解决办法
5136
查看次数

R在多个标准上交叉data.frame

我试图基于多个条件上的两个data.frames的交集来填充二进制向量.

我有代码工作,但我觉得只是为了得到二进制矢量是内存过多.

当我将我的代码应用于我的完整数据(40毫米+行)时.我开始有记忆问题.

是否有更简单的方法来生成向量?

以下是一些样本数据(例如,子样本仅包括完整样本中的obs.):

ob1_1 <- as.data.frame(cbind(c(1999),c("111","222","666","777")),stringsAsFactors=FALSE)
ob2_1 <- as.data.frame(cbind(c(2000),c("111","333","555","777")),stringsAsFactors=FALSE)
ob3_1 <- as.data.frame(cbind(c(2001),c("111","222","333","777")),stringsAsFactors=FALSE)
ob4_1 <- as.data.frame(cbind(c(2002),c("111","444","555","777")),stringsAsFactors=FALSE)

full_sample <-  rbind(ob1_1,ob2_1,ob3_1,ob4_1)
colnames(full_sample) <- c("yr","ID")

ob1_2 <- as.data.frame(cbind(c(1999),c("111","222","777")),stringsAsFactors=FALSE)
ob2_2 <- as.data.frame(cbind(c(2000),c("333")),stringsAsFactors=FALSE)
ob3_2 <- as.data.frame(cbind(c(2001),c("888")),stringsAsFactors=FALSE)
ob4_2 <- as.data.frame(cbind(c(2002),c("111","444","555","777")),stringsAsFactors=FALSE)

sub_sample <-  rbind(ob1_2,ob2_2,ob3_2,ob4_2)
colnames(sub_sample) <- c("yr","ID")
Run Code Online (Sandbox Code Playgroud)

这是我的工作代码:

q_intersect <- ""
q_intersect <- paste(q_intersect , "select       a.yr, a.ID       ", sep=" ")
q_intersect <- paste(q_intersect , "from         full_sample a  ", sep=" ")
q_intersect <- paste(q_intersect , "intersect                     ", sep=" ")
q_intersect <- paste(q_intersect , "select       b.yr, b.ID …
Run Code Online (Sandbox Code Playgroud)

memory r intersect sqldf

5
推荐指数
1
解决办法
2425
查看次数

在R中找到对称差异(交叉点的对面)的函数?

问题

我有两个不同长度的字符串向量.每个向量都有一组不同的字符串.我想找到一个向量但不在两个向量中的字符串; 也就是说,对称差异.

分析

我查看了函数setdiff,但其输出取决于向量的考虑顺序.我发现自定义函数outersect,但是这个函数要求两个向量具有相同的长度.

有什么建议?

更正

这个问题似乎与我工作的数据有关.否则,下面的答案解决了我在这篇文章中提到的问题.我会看看我的数据有什么独特之处,如果我学到任何可能对其他用户有帮助的东西,我会回复.

r xor set-difference intersect symmetric-difference

5
推荐指数
2
解决办法
3286
查看次数

在Groovy中从另一个中减去一个对象列表的最佳方法是什么?

当元素是对象时,是否有更古老的方法从另一个列表中减去一个列表?我认为可能有一种方法可以使用减去,但无法弄明白.这就是我所拥有的:

class item1 {
  int foo
  int getFoo(){return foo}
  public item1(id_in){ foo = id_in }
}

def list1 = [new item1(10),new item1(11),new item1(13)]
def list2 = [new item1(11),new item1(12),new item1(14)]

// list3 = list2 - list1
def list3 = list2.findAll{ !(it.foo in list1.collect{it.foo}) }
// works
assert list3.collect{it.foo} == [12,14]
Run Code Online (Sandbox Code Playgroud)

这真的很不错,但如果有更好的方法,我只是好奇. 这个问题非常相似,但是寻找交叉点(巧合的是,几小时前才发布),但我认为这些对象具有ID属性.这就是我使用我的foo属性的原因 - 我不希望解决方案需要一些与"id"相关的grails-like mojo(如果存在这样的东西)).

groovy list intersect

5
推荐指数
1
解决办法
4245
查看次数

在SQL Server中相交

有没有办法使用交叉而不选择不同的值?有点像INTERSECT ALL.

例如,考虑表A和B.

A --> 1, 1, 1, 2, 3, 4

B --> 1, 1, 2
Run Code Online (Sandbox Code Playgroud)

会导致

Result --> 1, 1, 2
Run Code Online (Sandbox Code Playgroud)

编辑

我认为这个链接很好地解释了我想要的东西.这个其他链接也有助于理解这个问题.或者这个其他链接更好地解释事件.

编辑2

假设表格:

表A.

?????????????????????????????
?   A    ? B  ? C ? D  ? E  ?
?????????????????????????????
? Car    ? 10 ? 1 ? OK ? -1 ?
? Car    ? 10 ? 1 ? OK ? -1 ?
? Car    ? 10 ? 1 ? OK ? -1 …
Run Code Online (Sandbox Code Playgroud)

sql sql-server intersect

5
推荐指数
1
解决办法
3323
查看次数

使用LINQ的两个列表的交集

我有一个名为admin的用户,该用户具有公司列表。我想返回拥有一个或多个相同公司的用户列表。我正在使用Linq使用此查询,但是我不确定为什么它不起作用。我不太了解.Any()的功能,但是如果我不包括它,则程序会出现语法错误。这是我的尝试:

public List<User> GetUsers(User admin)
{
    return Users.Where(user=>user.Companys.Intersect(admin.Companys)).Any()).ToList();

}
Run Code Online (Sandbox Code Playgroud)

c# linq database list intersect

5
推荐指数
1
解决办法
3545
查看次数

将SpatialPointsDataFrame与SpatialPolygonsDataFrame合并错误:返回的最大密集矩阵大小已超过

我正在尝试在SpatialPolygonsDataFrame(信息)上组合1000x1000m正方形的SpatialPointsDataFrame(网格),以聚合每个网格正方形内点的所有信息。

我尝试了代码:

combined <- intersect(info, grid)

但是我发现这个错误:

Error in RGEOSBinPredFunc(spgeom1, spgeom2, byid, func) : 
  rgeos_binpredfunc_prepared: maximum returned dense matrix size exceeded
Run Code Online (Sandbox Code Playgroud)

是否还有其他方法可以执行我想要的操作或解决错误?

r polygon spatial intersect

5
推荐指数
1
解决办法
1058
查看次数