查找在连接表

时间:2016-06-14 14:19:26

标签: sql sqlite activerecord

我有一个表A,它通过一个连接表J连接到另一个表B.我怎样才能访问表A中没有相应“连接”条目的所有行,基于给定的属性来自表B?例如:

Table A:
-------
id

Table J:
-------
A_id
B_id

Table B:
-------
id
name

假设对于给定的B.name =“Suzie”,我们如何确定所有在J中没有条目的行A与B_id,其中B.name =“Suzie”?我觉得这应该是一个简单的查询,我考虑使用GROUP BY,因为似乎对于A中的每个条目,你想确定你正在使用的B_id(其中B.name =“Suzie”)对于A_id的每个“组”,在J中存在“在这种情况下”。不知何故,我无法绕过这个;我希望能朝着正确的方向前进。

2 个答案:

答案 0 :(得分:2)

您可以使用datatable(df,options = list(rowCallback=JS(paste("function(row, data,index) {", paste(sapply(1:(ncol(df)),function(i) paste(" var ind_1=",i,"; $(this.api().cell(row,ind_1).node()).css({'background-color':index +1>ind_1 ? '#CCFFCC' : index+1 < ind_1 ? 'red' : 'yellow'}); " )),collapse = "\n"),"}" ) )))

执行此操作
WHERE NOT EXISTS

答案 1 :(得分:0)

我认为另一种方法是在联接表上执行LEFT OUTER JOIN,但使用另一个ON条件J.b_id是所需的b.id “名称”。因此,您可以检索A中有或没有相应B项的所有项目。

SELECT A.*
FROM A 
LEFT OUTER JOIN J 
ON J.a_id = a.id AND J.b_id IN
  (SELECT id FROM B where B.name "Suzie")
WHERE J.a_id IS NULL

对于有关表演的任何想法会好奇吗?

相关问题