例如,我有以下表格:
morse_matrix <- sapply(df, function(x) ifelse(grepl("Morse", x), grep("Morse", x), NA))
morse_list <- sapply(df, function(x) ifelse(grep("Morse", x), grep("Morse", x), NA))
morse_df <- data.frame(morse_matrix)
我想从create table t1(id1 int, id2 int, info text);
create table t2(id1 int, id2 int);
insert into t1 values(11, 12, "a");
insert into t1 values(11, 13, "b");
insert into t1 values(12, 13, "c");
insert into t1 values(13, 11, "d");
insert into t1 values(16, 17, "e");
insert into t2 values(11, 12);
insert into t2 values(15, 13);
insert into t2 values(12, 14);
行中删除t1
或id1
与id2
中的t2
相匹配的行,但我希望保留id1
和id2
{1}}匹配,或者如果两者都不匹配。
也就是说,我想删除第2行(因为11在两个表中都存在id1
),3(因为12在两个表中都存在id2
),但不是第1行(因为元组(11,12)出现在两个表中,第4行也出现(因为13 id1
中没有出现,而id2
中的t2
中没有11)
在MySQL中,我认为我可以使用子查询来做到这一点,但我不认为它在SQLite中是允许的。怎么办呢?
答案 0 :(得分:2)
SQLite确实允许子查询。虽然我不明白我理解这个问题,但我怀疑这样的事情会起作用:
delete from t1 where exists
(select * from t2 where (t2.id1 = t1.id1 or t2.id2 = t1.id2)
and not (t2.id1 = t1.id1 and t2.id2 = t1.id2));