There can be only one let, but it can be a tuple that expects multiple things. This is equivalent of a && b:

if let (Some(a), Some(b)) = (a, b) {}

There's a .zip() method on Option:

if let Some((a, b)) = a.zip(b) {}

For a || b you can use the .or() method of Option and Result:

if let Some(a_or_b) = a.or(b) {}

Try it: Rust Playground