#include using namespace SpacetimeDB; template auto TableFor(const char* table_name) { return QueryBuilder{}.table( table_name, query_builder::HasCols::get(table_name), query_builder::HasIxCols::get(table_name)); } struct User { Identity identity; }; SPACETIMEDB_STRUCT(User, identity) SPACETIMEDB_TABLE(User, user, Public) FIELD_PrimaryKey(user, identity) struct AuditEvent { Identity identity; }; SPACETIMEDB_STRUCT(AuditEvent, identity) SPACETIMEDB_TABLE(AuditEvent, audit_event, Public, true) FIELD_PrimaryKey(audit_event, identity) auto invalid_event_lookup = TableFor("user").right_semijoin( TableFor("audit_event"), [](const auto& users, const auto& events) { return users.identity.eq(events.identity); });