希望我能正确解释这一点。
查询我加入几张桌子的情况。设置系统的方式,当填充一列时,另一列为空,反之亦然。这是我目前查询结果的样子:
onReceive
这就是我试图让它看起来像:
CREATE TABLE mytable(
mainID INTEGER NOT NULL PRIMARY KEY
,acctID VARCHAR(4) NOT NULL
,emailID INTEGER NOT NULL
,type INTEGER NOT NULL
,created DATE NOT NULL
);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC123,'1/1/2018',12345,NULL,'12345');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC124,'1/1/2018',12345,NULL,'12345');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC125,'1/1/2018',12345,NULL,'12345');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC126,'1/1/2018',12345,NULL,'12345');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC127,'1/1/2018',12345,NULL,'12345');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC127,'1/1/2018',12345,NULL,'12345');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ACB234,'1/2/2018',NULL,ABCDEFG,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ACB234,'1/2/2018',NULL,ABCDEFG,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ACB234,'1/2/2018',NULL,ABCDEFG,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ACB234,'1/2/2018',NULL,ABCDEFG,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ACB234,'1/2/2018',NULL,ABCDEFG,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ACB234,'1/2/2018',NULL,ABCDEFG,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC567,'1/3/2018',789432,NULL,'789432');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC567,'1/3/2018',789432,NULL,'789432');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC567,'1/3/2018',789432,NULL,'789432');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC567,'1/3/2018',789432,NULL,'789432');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC567,'1/3/2018',789432,NULL,'789432');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC567,'1/3/2018',789432,NULL,'789432');
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC980,'1/4/2018',NULL,QRXS,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC980,'1/4/2018',NULL,QRXS,NULL);
INSERT INTO mytable(mainID,acctID,emailID,type,created) VALUES (ABC980,'1/4/2018',NULL,QRXS,NULL);
这里大概是我的尝试:我觉得我忽略了一些非常明显的东西,并且让它变得比以前更难......
id date pid pcid lid
ABC123 1/1/2018 12345 XYZ 12345
ABC124 1/1/2018 12345 XYZ 12345
ABC125 1/1/2018 12345 XYZ 12345
ABC126 1/1/2018 12345 XYZ 12345
ABC127 1/1/2018 12345 XYZ 12345
ABC127 1/1/2018 12345 XYZ 12345
ACB234 1/2/2018 98765 ABCDEFG 98765
ACB234 1/2/2018 98765 ABCDEFG 98765
ACB234 1/2/2018 98765 ABCDEFG 98765
ACB234 1/2/2018 98765 ABCDEFG 98765
ACB234 1/2/2018 98765 ABCDEFG 98765
ACB234 1/2/2018 98765 ABCDEFG 98765
ABC567 1/3/2018 789432 ZF1 789432
ABC567 1/3/2018 789432 ZF2 789432
ABC567 1/3/2018 789432 ZF3 789432
ABC567 1/3/2018 789432 ZF4 789432
ABC567 1/3/2018 789432 ZF5 789432
ABC567 1/3/2018 789432 ZF6 789432
ABC980 1/4/2018 8675309 QRXS 8675309
ABC980 1/4/2018 8675309 QRXS 8675309
ABC980 1/4/2018 8675309 QRXS 8675309
基本上,我试图填充PID,PCID,LID中缺少的列。当PCID存在时。在表B中,有3个Ids。如果填充了pcid,那么pid就不是等等。我想填充pid和pcid。
答案 0 :(得分:0)
你的第一个问题是你告诉SQL列不能为NULL,但是你用NULL值填充行。 在您的CREATE TABLE表中,如果您需要它们来保存NULL值,那么最后3列不应该说NOT NULL。
你的第二个问题是你没有在你的问题中明确你从哪里得到值'XYZ',或者你的预期输出中的任何其他NULL值,你似乎填充了值无处。这些价值来自哪里? 当问题不包括所有线索时,很难回答。
答案 1 :(得分:0)
为了节省时间,我把我需要的列放到另一个表中,并从那里更新。