假设我有这个SQL语句:
INSERT INTO MYTABLE
select A.code,B.name,C.add
from codes A
left join names B on A.fid=B.id
left join addresses C on B.num=C.id
where A.datechanged>somedate;
这为A中被修改的每一行添加了新记录。我希望它也跟踪B和C中的变化,例如,如果B.datechanged> somedate为真,但A.datechanged> somedate为false,则仍会添加新行。
换句话说,我希望它从所有三个表中提取数据,如果datechanged> somedate任何一个表,而不仅仅是A.我怎么能这样做?我打算在FROM子句中使用不同的表重复相同的语句,但我有大约10个正在连接的表。有更好的方法吗?
答案 0 :(得分:0)
听起来你只想要多个谓词和OR
子句
WHERE a.datechanged > somedate
OR b.datechanged > somedate
OR c.datechanged > somedate
SQL语句指定要返回的特定集。使用标准布尔代数组合谓词以确定返回哪些行。在这种情况下,如果满足任何谓词,则将返回该行。显然,如果您使用AND
来组合谓词,那么您将只获得满足所有三个条件的行。