我有一个表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中存在“在这种情况下”。不知何故,我无法绕过这个;我希望能朝着正确的方向前进。
答案 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
对于有关表演的任何想法会好奇吗?